当前位置: 首页 > 面试题库 >

$ .ajax调用在IE8中工作正常,在Firefox和Chrome浏览器中不起作用

吕华彩
2023-03-14
问题内容

这是我的代码

$.ajax(
{
    type: "GET", 
    url: 'http://devserver:7995/stdpart/services/GetAllPartsWithFilter',
    dataType: 'json',
    data: jsonPartsData,
    success: fnGetPartsData, 
    error: PartsLoadError  
});

这段代码在IE8中工作正常,但是在Firefox和Chrome浏览器中却失败了。当我检查XHR对象时,它表示状态码为0。我检查了所有其他问题,没有一个问题可以帮助我识别问题。

让我知道,如果我在这段代码中做错了什么。如果$ .ajax有一些兼容性问题,请提出与其等效的建议。

更新: 我们在http://www.xml.com/pub/a/2005/12/21/json-dynamic-script-
tag.html
找到了一种解决方案

它使用了 动态脚本 的概念。我们在应用程序中做了同样的事情,那么现在似乎所有事情都在起作用。尚未充分分析。


问题答案:

这是因为有相同来源政策。您不能使用ajax调用外部站点。如果确实要使用,则必须使用JSONP。或者,您可以使用服务器端代理。意味着,请在服务器端调用外部站点,然后对该Web服务进行Ajax调用。

更新:

在您的网站和webmethod中创建webserveice,然后输入以下代码

string proxyURL = "http://devserver:7995/stdpart/services/GetAllPartsWithFilter";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(proxyURL);
request.Method = "GET";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();

if (response.StatusCode.ToString().ToLower() == "ok")
{
    Stream content = response.GetResponseStream();
    StreamReader contentReader = new StreamReader(content);         
    return contentReader.ReadToEnd();
}
return string.Empty;

然后使用您的代码访问本地服务。

有关更多信息,请参考此链接



 类似资料:
  • 问题内容: 我有以下ajax调用,该调用在Firefox和Chrome中完美运行,但在IE中则不行: 我知道一个事实,所有变量都传递正确的内容,而$ .ajax确实传递所有参数/值。 这就是我遇到的错误: 日志:@错误:未定义日志:@状态:parsererror日志:@状态文本:确定 我知道IE上的缓存问题,并实施了一个随机参数来清除它。 这是我得到的JSON(我可以使用Charles看到它) 最

  • 我正在尝试将数据发布到科尔多瓦的计算机IP(作为url)。我可以从手机访问IP,甚至可以使用手机浏览器测试cordova应用程序。手机浏览器工作正常。当我在android手机(android 9.0)上运行应用程序时,出现了一个错误(未能在“XMLHttpRequest”上执行“send”):未能加载“myIP”。 这是我的代码; 任何帮助都将不胜感激。谢谢你。

  • 问题内容: 我正在使用开放式天气地图api网络服务进行ajax调用,以便使用纬度和经度获取当前天气,问题是同一调用在我的常规php文件夹中有效,但在我的phongap应用程序中不起作用。我的ajax调用如下所示 我没有尝试将其更改为,但没有任何效果。请帮助我,因为我目前对此仍然感到困惑。 问题答案: 您是否已将config.xml中的网址列入白名单? 了解更多:http : //docs.phon

  • 问题内容: 我已经设置了’cache:true’选项,但是该缓存似乎仅在IE中有效,而在Firefox和Chrome中不起作用。这是一个已知问题吗? 问题答案: 该选项不是jQuery维护的特殊缓存,因此可能有点用词不当。 将时间戳附加到所请求的URL,因此 强制 浏览器获取新副本,这更像是一个缓存破坏者。 不执行任何操作 ,将保留本机浏览器缓存以执行此处将要执行的任何操作。 这根本不是jQuer

  • 问题内容: 我已经动态创建了一个复选框。我曾经在单击复选框时调用过一个函数,该函数在Google Chrome和Firefox中有效,但 在Internet Explorer 8中不起作用 。这是我的代码: 是我的事件处理程序。 问题答案: 尝试: 更新: 对于IE9之前的InternetExplorer版本,应使用attachEvent方法将指定的侦听器注册到调用它的EventTarget上,对

  • 问题内容: 我在“ Ajax加载程序映像”中有问题。在Firefox上运行正常,但在chrome上,ajax加载程序映像似乎没有。 我在检查任何属性产品时会在边栏上有一些属性,产品会根据它进行更改,并且在ajax完成之前会生成一个预加载器图像。我正在做的是在我首先检查任何属性时在div html中插入gif图像并使用.show()方法,并且在ajax成功之后,我将div html设置为null并将