Tag: xmlhttprequest

Ajax不发布数据,Chrome扩展程序

在我的Chrome扩展程序中,我能够访问我的’punch.php’文件并接收数据,问题是我似乎无法将数据传递给该文件。 这是我的代码: jQuery.fn.punch = function(){ $(this).click(function(){ var punchBtn = $(this); var ProjectMemberId = ‘1’ var ProjectId = ‘1’ var str = ‘ProjectMemberId=’+ProjectMemberId+’&ProjectId=’+ProjectId; var xhr = new XMLHttpRequest(); xhr.open(“POST”, “http://www.ontimepunchcard.com/scripts/punch.php”, true); xhr.onreadystatechange = function() { if (xhr.readyState == 4) { $(‘#PunchBox’).html(xhr.responseText); if(xhr.responseText==0) { punchBtn.removeClass(‘PunchedIn’); } else { punchBtn.addClass(‘PunchedIn’); } } } xhr.send(‘ProjectMemberId=’+ProjectMemberId+’&ProjectId=’+ProjectId); }); }//END PUNCH METHOD […]

Jquery使用本地存储缓存Ajax XMLHttpResponse

我有一个需要升级的Jquery网站以提供本地存储缓存function,如果有缓存的响应HTML,Target会先对每个Ajax请求进行检查,然后它不会调用服务器端,而是从缓存中获取数据。 从缓存中缓存和显示数据等一切正常。 将我的缓存核心应用于严重依赖于XML HTTP响应标头的网站时出现了我的问题; 看来当我尝试在使用JSON.Stringify()序列化后,尝试缓存从ajax调用返回的XMLHttpResponse对象时,从JSON.Parse()返回的desearialized对象不包含响应标题! 我必须从包含所有先前添加的标头的缓存中返回XMLHttpResponse对象,因为所有网站都将其作为XMLHttpResponse的对象处理。 有任何想法吗?

当我设置错误的凭据时,为什么我的http basic auth请求获得状态0? Phonegap Android

在我使用phonegap制作的Android应用程序中,用户可以登录。当他们这样做时,JQuery获取他们的登录名和密码,并根据HTTP Basic Auth规范使用他们的凭据进行ajax调用。 一切正常。 但是,当用户设置错误的凭据时,我遇到了处理这种情况的问题。 在.error()回调中,我想显示状态401的特定消息(如“身份validation失败”)和其他状态的消息(“技术问题”)。 我的代码: $.ajax({ url: “http://exemple.com”, type: “GET”, dataType: “text”, contentType: “application/x-www-form-urlencoded; charset=UTF-8”, beforeSend: function (xhr) { xhr.setRequestHeader(“Authorization”, “Basic “+$.base64.encode(email+”:”+password)); }, success: function() { //my success callback }, error: function(xhr) { if(xhr.status===401) { //”authentication failed” } else { //”technical problem” } } }); 此代码在浏览器中正常工作。 状态401被发送。 但是,当我在我的phonegap android应用程序中测试时,状态发送为0.当我的凭据良好时,状态发送为200,而我的应用程序的其他请求运行良好,所以我不认为这是一个cors问题。 任何的想法 ? 谢谢你的帮助

通过jquery.ajax获取xml数据

脚本 $.ajax({ type: “post”, url: “Default.aspx?cmd=Setting”, success: parseXml }); function parseXml(xml) { alert(xml);//show Full XML File //find every Tutorial and print the author $(xml).find(“Tutorial”).each(function() { $(“#a”).append($(this).attr(“author”) + “”); }); } HTML 码 protected void Page_Load(object sender, EventArgs e) { if (Request[“cmd”] == “Setting”) { string k=@” Silverlight and the Netflix API Tutorials Silverlight 2.0 Silverlight […]

如何等待所有XHR2发送呼叫完成

我已经完成了一些代码,可以将多个文件从浏览器上传到服务器,同时显示进度条。 XHR2发送调用是异步的。 问题是我希望在所有XHR2发送调用完成后调用一些函数。 这是我的代码的一个非常简化的片段: var files = document.getElementById(“upload”).files; for (var i = 0, length = files.length; i < length; i++) { var file = files[i]; var uploadFunc = function (arg) { return function () { processXHR(arg); }; }(file); uploadFunc(); } function processXHR(file) { var normalizedFileName = getNormalizedName(file.name); var url = 'upload_file/'; var formData = new […]

无法从XMLHttpRequest触发单击

我写了一篇关于此的类似post,但由于过于本地化而关闭了。 经过一些研究和测试,我认为我找到了问题的根源,这个问题应该更好地解释,希望更有帮助。 使用XMLHttpRequest我需要转到页面,模拟鼠标单击,然后获取一些内容。 这是我写的代码: var sendToLog; var xhr = new XMLHttpRequest(); xhr.open(‘GET’, ‘/newsfeed-simulator’, true); xhr.responseType = ‘document’; xhr.onload = function(e) { if (this.status == 200) { var event = xhr.response.createEvent(“MouseEvents”); event.initMouseEvent(“click”, true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); xhr.response.getElementById(“simulate-button”).dispatchEvent(event); $(xhr.response).ready(function() { console.log(xhr.response.body); sendToLog = xhr.response.getElementsByClassName(“story-score”); }); chrome.extension.sendMessage({writeToLog: sendToLog}); […]

“XMLHttpRequest无法加载文件:/// …预检响应不成功”错误

我正在构建一个网站,该页面使用Jquery .load()函数加载导航栏和其他一些资源(如下面的代码所示)。 $(function () { $(“#navbar-placeholder”).load(“subpage_navbar.html”); }); 在safari 5中我的计算机本地查看.html文件时一切正常,它曾经在safari 11中正常工作,但现在当我尝试打开文件时出现错误: XMLHttpRequest无法加载file:/// …预检响应不成功 是否有任何偏好我需要在Safari中进行更改以便像以前一样工作?

如何从JSON字符串调用javascript函数?

如果我用jQuery做一个看起来像的AJAXpost $.post(‘MyApp/GetPostResult.json’, function(data) { // what goes here? }); 结果看起来像 { “HasCallback”: true, “Callback”: “function(){ alert(‘I came from the server’); }” }; 那我该如何调用回调函数呢? 我可以写if(data.HasCallback){data.Callback();}吗?

当API不允许Access-Control-Allow-Origin时该怎么办

我对所有这些同源策略的事情都很疯狂。 当我尝试向Google Maps API发出请求时,我没有遇到任何问题: var jsonData = $.ajax({ url:”http://maps.googleapis.com/maps/api/geocode/json?address=”, dataType:”json”, async:true, success: function(json){…} } 我认为这是因为Google Maps API允许Access-Control-Allow-Origin。 但是当我尝试使用openls.geog.uni-heidelberg.de API时,我得到了跨源错误: var xmlData = $.ajax({ type: “GET”, url:”http://openls.geog.uni-heidelberg.de/route?” //dataType:”jsonp xml”, dataType: “xml”, async:true, crossDomain : true, success: function(xml){…} } 请求的资源上不存在“Access-Control-Allow-Origin”标头。 因此不允许Origin’http:// localhost ‘访问。 有人认为我不明白的是,如果openls API不允许跨源,为什么可以直接从我的浏览器做一个请求,只需键入以下URL: http://openls.geog.uni-heidelberg.de/route?start=9.256506,49.240011&end=8.72083,49.7606&via=&lang=de&distunit=KM&routepref=Bicycle&weighting=Shortest&avoidAreas=&useTMC=false&noMotorways=false&noTollways=false&noUnpavedroads=false&noSteps=false&noFerries=假指令=假 但是我不能用jquery来做。 我也尝试过jsonp解决方案,但它不能与xml一起使用。 有什么想法发生了什么?

Ajax jQuery同时进行多次调用 – 漫长的等待回答而无法取消

我的问题如下: 在一个页面上,我正在做多个(6)ajax调用(通过jQuery)同时获取一些数据(使用php包装器通过调用获取数据) 请求是在同一时间完成的,需要10-20秒才能完成 如果用户点击任何链接去其他地方(到其他页面),我可以看到所有未完成的调用都被取消 但是,浏览器仍然等待20秒才能导航到另一个页面 – 就好像它仍在等待最长的呼叫完成,即使它被取消 (同样的问题在Chrome和Firefox中发生,ajax调用是异步的…我试图设置ajax超时,在ajax错误响应中捕获readystate = o,甚至尝试与webworkers做某事,但无济于事) 任何见解都会有所帮助 谢谢!