繁体   English   中英

Access-Control-Allow-Origin错误

[英]Access-Control-Allow-Origin error

我正在使用以下脚本 -

<!DOCTYPE html>
<html>
<head>
<script src="jquery-1.9.1.min.js"></script>
<script>
function postForm() {

    $.ajax({
            type: 'POST',
            url: 'http://10.0.0.8:9000/demo',
            data: {"name" : "test"},
            contentType: "application/json; charset=utf-8",
            dataType: 'json',
        })
    }

</script>
</head>
<body>
    <form id="ajaxForm" onsubmit="postForm(); return false; "  method="post"> 
        <input id="test" type="text" name="name" value="Hello JSON" /> 
        <input type="submit" value="Submit JSON" /> 
    </form>

</body>
</html>

我正在尝试访问的计算机正在运行播放框架。 我收到以下错误:

选项http://10.0.0.8:9000/demo 404(未找到)jquery-1.9.1.min.js:5 XMLHttpRequest无法加载http://10.0.0.8:9000/demo Access-Control-Allow-Origin不允许使用http://localhost:8080

我已经被困了两天了,有人可以帮帮我吗?

谢谢你

问题是你正在尝试进行跨源调用(从http://localhost:8080http://localhost:9000 )。 同源策略不允许这样做,因此浏览器尝试使用跨源资源共享来询问服务器是否可以允许跨源调用。 (这是您正在看到的OPTIONS HTTP请求。)由于服务器没有回复带有允许调用的标头的OPTIONS请求,因此出于安全原因,浏览器会拒绝该请求。

SOP适用于所有真正的“ajax”调用(例如,通过XMLHttpRequest调用)。 你可以:

  1. 更新服务器以实现对OPTIONS请求的响应,传回标头以允许调用(这将使其适用于大多数现代浏览器 ),或者

  2. 请求到同一个端口(我猜你有没有这样做的原因),所以请求是相同的来源,SOP不适用,或者

  3. 切换到使用JSON-P JSON-P不适合表单提交,因为它是一个GET ,而GET操作意味着是幂等的 ,大多数形式的提交都不是。 因此,除非这恰好是幂等表单提交(例如,搜索),否则使用JSON-P将是最好的黑客攻击。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM