更新
我只是测试了我的例子的链接......该死的东西有效。我不相信???任何评论仍然欢迎。
我刚刚更新了我的浏览器,Chrome拒绝了我的(以前正在工作)ajax调用包含html的简单文本文件。这是我目前的简单代码:
var stringData = $.ajax({ url: 'digz/index/'+$(this).attr("id")+'.txt', async: false }).responseText;
var $newItems = $(stringData);
alert($newItems.filter('.element').length); // FF & IE OK but Chrome = '0'
// there are few things here and I have tested with them rem'd out
$('#container').isotope( 'insert', $newItems ); // std. isotope form
Chrome控制台让我:
Failed to load resource: Origin null is not allowed by Access-Control-Allow-Origin.
XMLHttpRequest cannot load [...file path/name... ] Origin null is not allowed by Access-Control-Allow-Origin.
指针在jquery中 - 在版本1.9.0的第8472行
// Do send the request
// This may raise an exception which is actually
// handled in jQuery.ajax (so no try/catch here)
xhr.send( ( s.hasContent && s.data ) || null );
我的项目有一个精简版本:
Null return on Ajax
我认为ajax线是问题,需要修改。我尝试了很多替代排列,但有很多选择,我的经验有限。
答案 0 :(得分:0)
您很可能使用file:///
方案打开文件。如果这样做,Chrome将不允许直接访问硬盘的文件。
正如我的other answer所提到的,有一个解决方法,它使用此标志运行Chrome:
--allow-file-access-from-files
但是,如果您计划使用本地计算机进行认真开发,最佳解决方案是在本地安装Apache以通过http://localhost
提供内容。这解除了file:///
方案限制,因为所有浏览器都将使用http
协议加载页面。