2011-05-23 94 views
1

使用jQuery Ajax从本地服务器获取数据:它适用于IE8,但使用Firefox4会出错:(仅通过“错误”消息输入错误函数)。 Firebug显示数据正在变得正确。可能是以下错误的原因

正在运行的网址是: http://localhost:47092/testajax

的相关jQuery代码是:

$.ajax(
     { 
      type: "GET", 
      url: "http://localhost/test", 
      processData: true, 
      data: {}, 
      dataType: "json", 
      success: function (data, code, jqx) { 
       console.log(data); 
      }, 
      error: function (jqx, err, ex) { 
       console.log(ex); 
      } 
     } 
    ); 

什么可以是错误的原因是什么?我正在使用jQuery 1.5.2

另外,我正在使用jQuery.support.cors = true来启用跨域脚本编写。

+0

请注意,除非Firebug处于打开状态,否则'console.log'将不确定。 – Spudley 2011-05-23 11:26:40

+2

域名'localhost'不存在于Internet中^^它只能在本地访问。 – reporter 2011-05-23 11:28:00

+5

我不认为任何人都能够查看您的链接测试网站'http:// localhost:47092/testajax' ... – 2011-05-23 11:28:07

回答

6

听起来就像您遇到了跨站点脚本保护。

http://localhost:47092/testajax 
http://localhost/test 

协议,主机名和端口必须相同。否则,你必须使用像JSONP这样的解决方案。

+0

我已经使用jQuery.support.cors = true – user705414 2011-05-23 11:31:21

+0

你是正确的,但我想知道jQuery.support.cors = true不适用于Firefox 4 – user705414 2011-05-23 11:39:54

+0

'jQuery.support.cors'是一个只读属性 - 你可以不启用使用它的东西,其目的是功能检测。你是否在'http:// localhost/test'的服务器端实现了CORS(以及相应的HTTP头文件)? https://developer.mozilla.org/en/http_access_control – 2011-05-23 11:50:40

0

localhost:47092与localhost不同。在Ajax调用中使用相对URL,而不是绝对的。

相关问题