线上部署后POST请求出现net::ERR_BLOCKED_BY_CLIENT错误求助
线上部署后POST请求出现
net::ERR_BLOCKED_BY_CLIENT错误 本地运行正常的Laravel后端请求代码,部署到线上后持续报错:
http://127.0.0.1:8000/retrieve net::ERR_BLOCKED_BY_CLIENT
我的前端请求代码如下:
$.post("https://vgn.srgasaswsa.com", { // 从表单获取CSRF令牌 _token: document.querySelector( '#registrationForm [name="_token"]' ).value, // 发送选中项的值作为参数 data: item.value, }) .done((res) => { // 将返回数组循环渲染为地区选择项 $.map(res, (item) => { $(local).append( ` <li class="hover:bg-red-800 hover:text-white hover:font-semibold"> <label for="${item}" class="w-full h-fit relative" x-on:click="isFocus = false, message = '${item}'"> <input type="radio" name="${local.substring(1)}" id="${item}" value="${item}" class="absolute top-0 left-0 w-full h-fit opacity-0 cursor-pointer" > <p class="w-full h-fit py-2 text-[50px] lg:text-[1em] lg:text-base font-normal">${item}</p> </label> </li>` ); }); }) .fail((xhr, status, error) => { console.error(error); });
我已经将POST请求地址修改为线上部署地址,但错误依旧。以下是我的Laravel CORS配置:
'paths' => ['api/*', 'sanctum/csrf-cookie'], 'allowed_methods' => ['*'], 'allowed_origins' => ['https://vgn.srgasaswsa.com'], 'allowed_origins_patterns' => [], 'allowed_headers' => ['*'], 'exposed_headers' => [], 'max_age' => 0, 'supports_credentials' => true,
排查与解决建议
浏览器插件拦截
net::ERR_BLOCKED_BY_CLIENT大概率是广告拦截插件(如AdBlock、uBlock Origin)或浏览器安全机制触发的拦截。直接用隐私模式打开页面,或者禁用所有插件后测试。请求地址未生效
错误信息里的请求地址还是本地的http://127.0.0.1:8000/retrieve,但代码里写的是线上域名,说明要么代码没改对,要么浏览器缓存了旧代码:
- 检查线上页面的实际JS源码,确认POST的URL确实是线上地址;
- 按
Ctrl+F5强制刷新清除缓存,部署时给静态资源加版本号避免缓存问题。
- CORS配置路径不匹配
你的CORS规则只对api/*和sanctum/csrf-cookie路径生效,但请求是直接发向根域名,不在规则覆盖范围内:
- 修改
paths为['*', 'api/*', 'sanctum/csrf-cookie'],让所有路径都应用CORS规则; - 或者把后端接口移到
api/路径下,比如https://vgn.srgasaswsa.com/api/retrieve,同时更新前端请求地址。
- CSRF令牌验证问题
- 确认线上页面的CSRF令牌是后端正确生成的,表单里的
_token值和后端session中的一致; - 如果用了Sanctum,跨域场景下要先请求
sanctum/csrf-cookie获取cookie,再发送POST请求。
内容的提问来源于stack exchange,提问作者PRESTIGE2930
相关产品推荐
相关产品推荐

