XMLHttpRequest 无法加载 url Origin null is not allowed by Access-Control-Allow-Origin

Posted

技术标签:

【中文标题】XMLHttpRequest 无法加载 url Origin null is not allowed by Access-Control-Allow-Origin【英文标题】:XMLHttpRequest cannot load the url Origin null is not allowed by Access-Control-Allow-Origin 【发布时间】:2012-08-16 19:48:29 【问题描述】:

json 响应

"userName":"clevermeal835","userRole":"Participant"

我收到成功的警报消息,但在阅读响应时我收到错误

XMLHttpRequest 无法加载 url Origin null 是 Access-Control-Allow-Origin 不允许的。

如果我通过 --disable-web-security 从命令提示符运行代码,我会收到响应 下面是代码。

<html>  
<head>  
<meta charset="UTF-8">  
<script type="text/javascript" src="Scripts/jquery-1.4.2.min.js"></script>  
                     <script>  
        $(document).ready(  
        function()   
        $("#jsonpbtn2").click(function()   
            var uid = "clevermeal835";  
            var pwd = "Welcome_1";  
            var userType = "participant";  
            var surl="http://localhost:8080/RESTlet_WS/MobiSignIn/\"userName\":\""+uid+"\",\"password\":\""+pwd+"\",\"userType\":\""+userType+"\"/";  
                $.ajax(  
                    type : 'GET',  
                    contentType: "application/json; charset=utf-8",  
                    url : surl,  
                    dataType : 'json',  
                    headers : Accept : "application/json","Access-Control-Allow-Origin" : "*",  
                    crossDomain : true,  
                    success :SucceedFunc ,
                    error : function(data, textStatus, errorThrown) 
                            console.log("error"+' '+JSON.stringify(data) + ' ' + textStatus + '  ' + errorThrown);  
                    
                    );  
                    function SucceedFunc(data) 
                        alert("success");
                        var userName = data.userName;
                        alert(userName);
                    
                    );  
                );  
    </script>   
    </head>  
    <body>  
    <input id="jsonpbtn2" type="submit" value="button" />  
    </body>  
    </html>    

【问题讨论】:

您能否提供至少一个如何您提出请求的示例?您是否尝试跨域调用? 刚刚我已经放了代码,请您验证并帮助我 我有点困惑,为什么您在调用 localhost 时将此视为跨域请求?你这样做的理由是什么? 如果我删除那个 crossDomain : true 我得到同样的错误 这个页面的网址是什么? 【参考方案1】:

如果你调用的是上面问题中的html页面ajaxCallPage.html,比如file://.../ajaxCallPage.html,那么你做错了。

ajaxCallPage.html 文件放在您的网络服务器中,并像这样调用它http:/localhost:8080/.../ajaxCallPage.html。那么这个错误就不会出现了。

如果是这样,这个问题可能与XMLHttpRequest cannot load http://localhost:8080/exist/rest/db/.... Origin null is not allowed by Access-Control-Allow-Origin重复

【讨论】:

代替 localhost 我放置了 ipaddress。如果我删除了如何从网络服务器获得响应,我也尝试过 您在上面粘贴的页面的网址是什么? 我要求验证这是否真的是一个跨域 XmlHttpRequest。 localhost:8080/RESTlet_WS/MobiSignIn\"userName\":\""+uid+"\",\"password\":\""+pwd+"\",\"userType\":\" "+userType+"\"/ 这是我使用的 url 和 uid = "clevermeal835" , pwd = "Welcome_1" ,userType = "participant";

以上是关于XMLHttpRequest 无法加载 url Origin null is not allowed by Access-Control-Allow-Origin的主要内容,如果未能解决你的问题,请参考以下文章

XMLHttpRequest 无法加载 [url] 预检响应具有无效的 HTTP 状态代码 405

XMLHttpRequest 无法加载 URL。 Access-Control-Allow-Origin 不允许的来源

XMLHttpRequest 无法加载 url Origin null is not allowed by Access-Control-Allow-Origin

无法通过 xmlhttprequest 加载本地 xml 文件

XMLHttpRequest 无法加载 <instagram OEMBED URL>。请求的资源上不存在“Access-Control-Allow-Origin”标头

XMLHttpRequest 无法为 instagram 加载