跨源请求已阻止:同源策略禁止在某个URI上读取远程资源
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了跨源请求已阻止:同源策略禁止在某个URI上读取远程资源相关的知识,希望对你有一定的参考价值。
我在ajax请求后写了这个:
$.ajax({
type : "POST",
processData:false,
crossDomain:true,
crossOrigin:true,
contentType:false,
headers: {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Methods": "POST",
"Access-Control-Allow-Headers": "Origin, X-Requested-With, Content-Type, Accept",
},
url : 'my URI',
data: formData,
success : function(receivedData) {
console.log("SUCCESS: ");
alert(receivedData);
}
});
但是在回复中我通过浏览器收到以下消息:Cross-Origin Request Blocked:同源策略禁止在我的URI上读取远程资源。 (原因:缺少CORS标题'Access-Control-Allow-Origin')。
答案
尝试下面的代码,如果它不起作用,那么你需要实现服务器端cors启用
$.ajax({
type : "POST",
processData:false,
crossDomain:true,
crossOrigin:true,
contentType:false,
'Access-Control-Allow-Methods': 'POST',
'Access-Control-Allow-Headers': 'Origin, X-Requested-With, Content-Type, Accept',
},
header:{'Access-Control-Allow-Origin': '*'},
url : 'my URI',
data: formData,
success : function(receivedData) {
console.log("SUCCESS: ");
alert(receivedData);
}
});
那么你可以像这样使用ajax调用
$.ajax({
url: 'http:ww.abc.com?callback=?',
dataType: 'JSONP',
jsonpCallback: 'callbackFnc',
type: 'GET',
async: false,
crossDomain: true,
success: function () { },
failure: function () { },
complete: function (data) {
if (data.readyState == '4' && data.status == '200') {
errorLog.push({ IP: Host, Status: 'SUCCESS' })
}
else {
errorLog.push({ IP: Host, Status: 'FAIL' })
}
}
});
以上是关于跨源请求已阻止:同源策略禁止在某个URI上读取远程资源的主要内容,如果未能解决你的问题,请参考以下文章
header头设置解决 “已拦截跨源请求:同源策略禁止读取位于 http://47.104.128.87/back/test/test 的远程资源。(原因:CORS 头缺少 'Access