跨源请求已阻止:同源策略禁止在某个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

跨域请求

跨域请求被阻止:同源策略不允许读取远程资源

浏览器中的“跨源请求被阻止:同源策略”错误

跨域请求被阻止:同源策略不允许在 http://........ 读取远程资源