这是我的代码 $.ajax( { type: "GET", url: 'http://devserver:7995/stdpart/services/GetAllPartsWithFilter', dataType: 'json', data: jsonPartsData, success: fnGetPartsData, error: PartsLoadError }); 这是代码在IE8中正常工作,但在Firefox和Chrome浏览器中失败。 当我检查XHR对象时,说状态码是0。我已经检查了所有其他问题,没有一个能够帮助我确定问题。 让我知道,如果我在这个代码做任何错误的事情。 如果$ .ajax有一些兼容性问题,那么请build议一些相当于它的东西。 更新:我们在http://www.xml.com/pub/a/2005/12/21/json-dynamic-script-tag.htmlfind了一个解决scheme 它使用dynamic脚本的概念。 我们在我们的应用程序中做了同样的事情,那么现在似乎每件事情都在起作用。 还没有完全分析。
我试图做一个互联网上的服务器(http)之间的ajax调用。 并将其指向我自己的本地主机。 FF / Chrome / ETC …的作品。 这只是一个IE问题。 即时通讯使用IE 11和10。 该请求甚至没有完成。 “拒绝访问”即刻被抛出。 这是代码。 只为你看。 在IE8和IE9中不是经典的HTTP / HTTPS错误。 这是别的,但文档没有帮助。 $jq.ajax({ contentType: 'application/json', url: url, dataType: 'json', crossDomain: true, beforeSend: function (xhr) { xhr.withCredentials = true; xhr.setRequestHeader("Authorization", "Basic " + $jq.base64.encode(username and password)); }, success: function (data, status, headers) {}, error: function (xhr, status, error) {} […]
无法使用XMLHttpRequest获取数据(状态0,responseText为空): xmlhttp = new XMLHttpRequest(); xmlhttp.open(“GET”,“http://www.w3schools.com/XML/cd_catalog.xml”,true); xmlhttp.onreadystatechange =()的函数 { 如果(xmlhttp.readyState == 4) alert(“status”+ xmlhttp.status); } xmlhttp.send(); 它提醒“状态0”。 与本地主机请求相同的情况(cd_catalog.xml保存为本地文件) xmlhttp.open(“GET”,“http://localhost/cd_catalog.xml”,true); 但与本地主机IP请求 xmlhttp.open(“GET”,“http://127.0.0.1/cd_catalog.xml”,true); 并与本地文件请求 xmlhttp.open(“GET”,“cd_catalog.xml”,true); 一切正常(状态200) 什么可以导致与在线请求的问题(状态= 0)? PS:Live HTTP Headers显示,在所有情况下,一切正常: HTTP / 1.1 200 OK 内容长度:4742 PS2:VMWare上的Apache本地Web服务器(主机操作系统Win7,客户操作系统Ubuntu,networking适配器 – NAT)。 浏览器 – Firefox。
XMLHttpRequest有5个readyState ,我只使用其中的1个(最后一个4 )。 其他人可以使用哪些实际应用程序?
我写了一个XMLHttpRequest运行正常,但返回一个空的responseText。 javascript如下: var anUrl = "http://api.xxx.com/rates/csv/rates.txt"; var myRequest = new XMLHttpRequest(); callAjax(anUrl); function callAjax(url) { myRequest.open("GET", url, true); myRequest.onreadystatechange = responseAjax; myRequest.setRequestHeader("Cache-Control", "no-cache"); myRequest.send(null); } function responseAjax() { if(myRequest.readyState == 4) { if(myRequest.status == 200) { result = myRequest.responseText; alert(result); alert("we made it"); } else { alert( " An error has occurred: " + myRequest.statusText); […]
我目前正在编写JavaScript和令人困惑的callback 。 我发现它不是一种内置function,但… 我正在阅读O'Relly JavaScript 5th Edition,它显示了一个如下所示的示例代码: getText = function(url, callback) // How can I use this callback? { var request = new XMLHttpRequest(); request.onreadystatechange = function() { if (request.readyState == 4 && request.status == 200) { callback(request.responseText); // Another callback here } } request.open('GET', url); request.send(); } 基本上,我想我不明白callback的一般想法虽然…有人可以写一个示例代码来利用上面的callback ?
对于一个项目,我正在寻找各种各样的HTML5和Javascript元素以及围绕它们的安全性,而我正试图让我的头脑刚好在CORS的周围。 根据我的testing,如果我删除.. <?php header("Access-Control-Allow-Origin: *"); header('Access-Control-Allow-Methods: GET, POST, OPTIONS'); ?> ..从试图访问的页面我看到在控制台login在Chrome中的以下内容: XMLHttpRequest cannot load http://www.bla.com/index.php. Origin http://bla2.com is not allowed by Access-Control-Allow-Origin. 我明白这是正确的,但是Wireshark在返回时显示HTTP / 1.1 200 OK,并且在数据中显示被请求的页面的来源。 那么是不是浏览器和JavaScript阻止了responseText被实际使用,即使它实际上被转移了? 代码如下: function makeXMLRequest() { xmlhttp=new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState==4) { alert(xmlhttp.responseText); } } xmlhttp.open("GET","http://www.bla.com/index.php",true); xmlhttp.send(); } 提前致谢。
我正在使用服务器会话使用PhoneGap应用程序。 它需要cookies来处理会话。 另外,来自负载平衡器的cookie也应该被处理。 所以没有办法。 如何处理PhoneGap应用程序中的Cookies? 我已经完成了一些研究: 有人说cookie处理可能取决于服务器没有为未知用户代理(IIS)设置cookie: iOS上的PhoneGap会话(cookie) 在JavaScript中,cookie可以用document.cookie = …来设置,但是它们不会保存在PhoneGap中并丢失。 在发射xhr请求之前它工作。 使用xhr.getResponseHeader('Set-Cookie')在xhr请求后可以检索cookie。 但只有在服务器上实际设置。 不幸的是,jQuery去掉了“Cookie”头。 (xhr)请求之后,JavaScript document.cookie属性未被分配,也未更新。 有些人build议localStorage保存会话ID等,但所有的脚本都可以访问它,这可能是XSS的安全问题。 Cookies通过使用httponly标志来解决这个问题。 iOS:有一些修改会改变webView行为来支持cookie。 但他们似乎不适用于iOS 6和PhoneGap 2.5: https ://groups.google.com/forum/ ? fromgroups =#!topic/ phonegap/ZJE1nxX63ow Cookie似乎在AppDelegate.m(v2.5)中默认启用。
看起来,当您在浏览器中通过脚本创buildXMLHttpRequest时,如果浏览器设置为离线工作或者拔出了networking电缆,则请求将完成,并显示错误状态= 0。0不在允许范围内列出HTTP状态码。 什么是0代表的状态码? 这是否意味着所有浏览器和所有HTTP客户端实用程序都是一样的? 它是HTTP规范的一部分,还是它是其他协议规范的一部分? 这似乎意味着HTTP请求根本无法完成,也许是因为服务器地址无法parsing。 什么错误信息适合向用户显示? “要么你没有连接到互联网,或者网站遇到问题,或者地址中可能有打字错误”? 我应该补充一点,我将FireFox中的行为设置为“脱机工作”,而不是在Microsoft Internet Explorer中设置为“脱机工作”时。 在IE中,用户得到一个对话框,让用户可以上网。 在返回错误之前,FireFox不会通知用户。 我是这样回答“显示更好的错误信息”的请求。 什么Internet Explorer做的很好。 它告诉用户是什么导致了问题,并给他们select修复它。 为了给与FireFox等价的用户体验,我需要推断问题的原因并通知用户。 那么从状态0可以推断出什么? 它有一个普遍的含义,还是没有告诉我什么?
伪代码: $(document).ajaxError(function(e, xhr, options, error) { xhr.retry() }) 甚至更好的是某种指数后退