jquery $ .ajax dilemna - 需要修订

时间:2013-09-23 00:04:42

标签: jquery jquery-isotope

更新
我只是测试了我的例子的链接......该死的东西有效。我不相信???任何评论仍然欢迎。

我刚刚更新了我的浏览器,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线是问题,需要修改。我尝试了很多替代排列,但有很多选择,我的经验有限。

1 个答案:

答案 0 :(得分:0)

您很可能使用file:///方案打开文件。如果这样做,Chrome将不允许直接访问硬盘的文件。

正如我的other answer所提到的,有一个解决方法,它使用此标志运行Chrome:

--allow-file-access-from-files

但是,如果您计划使用本地计算机进行认真开发,最佳解决方案是在本地安装Apache以通过http://localhost提供内容。这解除了file:///方案限制,因为所有浏览器都将使用http协议加载页面。

这些通常用于本地开发:EasyPHPWAMPXAMPPBitNami