相关疑难解决方法(0)

Chrome中的"Access-Control-Allow-Origin"不允许"原点为null".为什么?

我正在研究一些Javascript在我的电脑上本地运行.我正在使用jQuery CSV插件(http://plugins.jquery.com/project/csv)将csv文件加载到javascript数组中.脚本很简单:

$(function(){
 $.get("file.csv", function(data){
  stuff = $.csv()(data);
 })
})
Run Code Online (Sandbox Code Playgroud)

在Firefox中它工作正常,但在Chrome中它说"Access-Control-Allow-Origin不允许使用Origin null".那是什么意思?我找到了与此错误相关的跨服务器内容的各种线程,但我只是使用本地文件.

javascript google-chrome xmlhttprequest cross-domain

50
推荐指数
2
解决办法
8万
查看次数

在Chrome中使用本地文件的jQuery getJSON问题

我有一个非常简单的测试页面,它使用jQuery的$ .getJSON和$ .ajax方法的XHR请求.同一页面在某些情况下有效,而在其他情况下则无效.特别是,它在Ubuntu上的Chrome中不起作用.

我正在使用Chrome 5.0.342.7测试版测试Ubuntu 9.10,使用Chrome 5.0.307.9测试版测试Mac OSX 10.6.2.

  • 当文件从Ubuntu/Chrome和Mac/Chrome安装在Web服务器上时,它可以正常工作(在此处试试).
  • 当文件安装在Mac/Chrome的本地硬盘驱动器上时(使用file:/// ...访问),它可以正常工作.
  • 当文件安装在Ubuntu/Chrome中的本地硬盘驱动器上时(文件:/// ...访问),它会失败.

可以从这里下载tar/gzip文件中的一小组3个文件:http: //issues.tauren.com/testjson/testjson.tgz

当它工作时,Chrome控制台会说:

XHR finished loading: "http://issues.tauren.com/testjson/data.json".
index.html:16Using getJSON
index.html:21
Object
result: "success"
__proto__: Object
index.html:22success
XHR finished loading: "http://issues.tauren.com/testjson/data.json".
index.html:29Using ajax with json dataType
index.html:34
Object
result: "success"
__proto__: Object
index.html:35success
XHR finished loading: "http://issues.tauren.com/testjson/data.json".
index.html:46Using ajax with text dataType
index.html:51{"result":"success"}
index.html:52undefined
Run Code Online (Sandbox Code Playgroud)

如果它不起作用,Chrome控制台将显示以下内容:

index.html:16Using getJSON
index.html:21null
index.html:22Uncaught TypeError: Cannot read property 'result' of null
index.html:29Using ajax with …
Run Code Online (Sandbox Code Playgroud)

ajax jquery json google-chrome

48
推荐指数
3
解决办法
10万
查看次数

绕过本地文件系统上的Chrome Access-control-allow-origin?

我已经在SO上阅读了其他相同的原始策略主题,但我还没有看到任何与本地文件系统相关的解决方案.

我有一个网络应用程序(在一个松散的意义上)必须在本地服务.我试图在用户加载页面后加载大量数据,具体取决于他们在网页上做了什么.在Firefox 3.5和IE8中,我可以使用jQuery的AJAX()和GetScript()方法来执行此操作,但在Chrome中由于同源策略而失败.

XMLHttpRequest无法加载file://test/testdir/test.js.原产地null是不允许的by Access-Control-Allow-Origin.

这种情况发生在我做一些简单的事情时

$.getScript("test.js");
Run Code Online (Sandbox Code Playgroud)

这在IE和Firefox中运行良好.

在阅读了大量有关此内容之后,我决定尝试直接写入文档的头部.在Chrome的控制台中,我键入了以下内容:

var head = document.getElementsByTagName("head")[0];  
var script =document.createElement('script');   
script.id = 'uploadScript';  
script.type = 'text/javascript';  
script.src = "upload.js";   
head.appendChild(script);
Run Code Online (Sandbox Code Playgroud)

这在粘贴到控制台中时工作正常 - <script...test.js</script>元素被添加到头部,评估,并且内容被加载到DOM中.

我认为这是成功的,直到我将此代码放入函数调用.从函数调用时,相同的确切代码会将元素添加到但不会评估JavaScript文件.我无法弄清楚为什么.如果我使用Chrome的控制台停止执行它正在添加元素的方法并运行上面的代码,它就不会对它进行评估.但是,如果我取消暂停执行并运行完全相同的代码(在控制台窗口中粘贴它),它就可以工作.我无法解释这一点.以前有人处理过这个吗?

我已经阅读了以下SO帖子,但他们没有描述我的问题:

绕过同源策略的方法
XMLHttpRequest Origin null不允许Access-Control-Allow-Origin for file:///到file:///(无服务器)
跨站点XMLHttpRequest

同样,我最后的办法是在网页加载时加载所有数据 - 这可能导致加载网页最多延迟10秒,这对90%的应用用户来说是不必要的.

感谢您的任何建议/选择!

javascript jquery google-chrome same-origin-policy

28
推荐指数
1
解决办法
4万
查看次数

仅限Chrome中的错误:XMLHttpRequest无法加载文件网址请求的资源上没有"Access-Control-Allow-Origin"标头

我正在关注一本书的例子,因此代码非常简单.

这是代码:

jQuery.get("ajax_search_results.php",
           { s:search_query },
           write_results_to_page, "html");
Run Code Online (Sandbox Code Playgroud)

代码是ajax_search_results.php:

<div id="ajax_search_results">
 <ul>
 <li><a href="#">First result</a></li>
 <li><a href="#">Second result</a></li>
 <li><a href="#">Third result</a></li>
 <li><a href="#">More...</a></li>
 </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

这在Firefox中可以正常工作.但在Chrome中,我可以在JS控制台中看到错误消息:

XMLHttpRequest cannot load 
file:///C:/xampp/xampp/htdocs/snk/ajax_search_results.php?s=keyword. 
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'null' is therefore not allowed access.
Run Code Online (Sandbox Code Playgroud)

你能帮忙找出问题所在吗?

javascript google-chrome

16
推荐指数
2
解决办法
14万
查看次数

错误:使用JQuery的ajax方法加载XML文件时,"Access-Control-Allow-Origin不允许使用Origin null"

这是我的代码:

this.loadMap = function () {
    this._map = null;
    this._width = 0;
    this._height = 0;
    this._playerX = 0;
    this._playerY = 0;
    this.finished = false;
    this.loaded = false;
    $.ajax({
        type: "GET",
        url: "maze1.xml",
        dataType: "xml",
        success: this.parseXmlMap,
        context: this
    });
};
Run Code Online (Sandbox Code Playgroud)

我得到的错误是

"XMLHttpRequest无法加载file:/// C:/wamp/www/mazegame/maze1.xml.Access-Control-Allow-Origin不允许使用Origin null.

这个相同的脚本在Firefox中运行良好

xml jquery

15
推荐指数
4
解决办法
5万
查看次数

跨站点XMLHttpRequest

我想提供一个Javascript代码,它可以在任何包含它的网站上运行,但它总是需要在托管Javascript的服务器上获取更多数据(甚至修改数据).我知道出于明显的原因存在安全限制.

考虑在xyz.com上托管的index.html,其中包含以下内容:

<script type="text/javascript" src="http://abc.com/some.js"></script>
Run Code Online (Sandbox Code Playgroud)

some.js是否能够使用XMLHttpRequest将数据发布到abc.com?换句话说,abc.com是否被隐含信任,因为我们从那里加载了Javascript?

javascript xss ajax xmlhttprequest

12
推荐指数
1
解决办法
4万
查看次数

XMLHttpRequest无法加载Access-Control-Allow-Origin不允许使用null

我有一个包含以下代码的code.html文件.

 $.ajax({ 
                    type: "POST", 
                    datatype: "JSONP",
                    url: "path",
                    success: function(msg){
                    var e = document.createElement("div");
                    e.id = "ads";
                    document.body.appendChild(e);
                    $("#ads").html(msg);

                    }
           });
Run Code Online (Sandbox Code Playgroud)

当我在浏览器中打开code.html文件时,它会出错:

**"XMLHttpRequest cannot load file://..... Origin null is not allowed by Access-Control-Allow-Origin."**
Run Code Online (Sandbox Code Playgroud)

请帮我!!如何避免这个问题

javascript php

8
推荐指数
2
解决办法
2万
查看次数

如何在客户端javascript中读取本地csv文件?

我有客户端javascript,我想从本地csv文件中读取.在html代码中,我使用脚本标记导入本地javascript文件,此js文件位于另一个文件夹中.

js文件的内容

$.ajax({
    type: "GET",
    url: "./../../data/English.csv",
    dataType: "text",
    success: function(data) {
        alert("worked");
    },
    error: function (request, status, error) {
        alert(request.responseText);
    }
 });
Run Code Online (Sandbox Code Playgroud)

csv文件的路径是相对于html文件的.但是会触发错误功能.有没有办法来解决这个问题?

谢谢

html javascript csv ajax jquery

8
推荐指数
1
解决办法
2万
查看次数