Tag: xmlhttprequest

使用jquery和ajax发送授权标头

我已经在stackoverflow上查看了以下问题,但我没有尝试做什么。 Ajax授权请求标头一次又一次失败 jQuery Ajax未经授权的401错误 使用跨域post发送凭据? 这是我目前拥有的代码: $(document).ready(function() { $.ajax({ url: ‘http://sample.domain.com/script.php?name1=value1&jsonp=?’, type: ‘GET’, dataType: ‘json’, contentType: “application/json”, beforeSend: function(xhr) { xhr.setRequestHeader(“Authentication”, “Basic ZnJvbWFwcGx********uOnRoM24zcmQ1UmgzcjM=”) //Some characters have been replaced for security but this is a true BASE64 of “username:password” }, success: function(data){ alert(data); } }); }); 我拥有的子域名受.htpasswd文件的密码保护。 使用base64编码中使用的用户名/密码组合,网站登录对我来说很好。 我在不同的域上运行此脚本而不是url所在的域,这就是为什么我有jsonp =? 在url中 我在浏览器中从控制台获得的响应是​​: GET http://sample.domain.com/script.php?name1=value1&jsonp=jsonp1334177732136 401 (Authorization […]

jQuery文件上传与IE10,零字节文件一起陷入挂起状态

我正在使用这个jQuery插件,并在我的网站上看到相同的结果,因为我可以在此演示中重现: http://blueimp.github.io/jQuery-File-Upload/ 即使演示文稿显示“上传服务器当前不可用”,您仍然可以通过转到演示并尝试上传零字节文件来重新创建问题(必须具有JPG,GIF或PNG扩展名,因为这是他们允许的全部内容)。 在FireFox和Chrome中,您将看到它尝试POST零字节文件。 在IE10中,如果您在开发人员工具中查看网络选项卡,您将看到XMLHTTPRequest对象处于“挂起”状态。 如果您在IE10中上传非零大小的文件,您还会看到它POST数据。 我搜索并发现只有其他人抱怨IE10中零字节文件的问题。 他们没有像我一样使用相同的jQuery插件,所以我认为这是一个普遍的IE10问题。 此外,我到目前为止找到的唯一答案是不允许用户上传零字节文件。 如果可能的话,我想支持零字节文件,它们在我的应用程序中有一些用法,我不时会自己使用它们,所以我应该让我的用户因为想要这个function而疯狂。 我有什么选择?

JQuery $ .post跨域和凭据

我编写了一个Web应用程序,它使用了许多带有JQuery的$.post调用。 现在我想发送withCredentials: true以保持会话活着,在$.ajax看起来像这样(并且也像这样工作): $.ajax({ type: ‘post’, url: ‘http://example.com/server/api.php’, crossDomain: true, dataType: “json”, xhrFields: { withCredentials: true }, data: { username : ‘test’, password : ‘test’ }, success: function (d) { $(‘body’).html(d.status); } }); 这是因为我现在想将PHP文件上传到我的服务器并使用Cordova导出客户端。 ( withCredentials: true仅包含因为在我的本地主机服务器上进行测试而包含的内容)我可以将其打包到$.post调用中,还是需要替换所有调用? (我会写一个类似于$ .post的新函数)

没有指定dataType的自定义ajaxTransport函数没有触发(全部!)

我一直在尝试为jQuery设置自定义ajaxTransports,以便在某些情况下为我们的产品缩短某些工作流程。 但是,我没有成功地让这些传输得到尊重(而我有许多工作定制ajaxPrefilters )。 测试了多个版本的jQuery: 1.5.2 1.6.4 1.7.2 1.8.0 使用多个浏览器进行测试: Firefox 15 Chrome 21 iOS 5网页浏览量 … 他们都没有工作。 JsFiddle测试用例: http : //jsfiddle.net/PVYut/ … 如果我添加一个dataType来缩小它,那么它工作正常。 JsFiddle测试用例: http : //jsfiddle.net/PVYut/1/ … 我只是做错了吗? 我很高兴被告知,只要我能让这个工作! -_-

是否可以从JavaScript中的HTTP响应头获取Set-Cookie值?

我正在使用jQuery的ajax()方法进行一些异步服务器调用,并希望捕获调用失败的情况,因为会话已超时。 从这个案例中查看响应头文件,我看到它们包含了 Set-Cookie: SMSESSION=LOGGEDOFF 这似乎是一个非常可靠的测试。 但是在传递给jQuery的error回调的XMLHttpRequest对象上调用getAllResponseHeaders显然会返回一个空字符串,而我无法找到获取该头信息的任何其他方法。 这可能吗?

浏览器偶尔中止Ajax请求而不返回任何错误

在我的项目中( PHP与Symfony 2)我在每个页面中都做了很多Ajax请求。 我遇到了很多问题,因为它看起来像浏览器(在谷歌浏览器和Firefox中测试)正在中止请求而不会给我一个错误。 我已经做了一个干净的页面来测试可能导致此问题的原因并且错误仍然存​​在。 我试过在for循环中做10个请求的测试(我相信我们没有任何问题,对吧?)。 这是我的代码: Test page Test page. $(document).ready(function() { for (var i = 0; i < 10; i++) { $.get('/i18n/javaScript/pt.json', function(data) { console.log(data); }); } }); 以下是Firebug中请求结果的屏幕截图: 如您所见,某些请求已完成,而其他请求未完成。 有时浏览器会完成所有10个请求而不会出错。 是什么导致这个? 我已经测试了所有解决方案,但我很确定它是Windows,Apache或PHP配置问题。 今天我在我的机器中配置了一个VM , VirtualBox运行Ubuntu 13.04 (Raring Ringtail)和Apache 2.2 + PHP,并且没有错误发生,certificate这与我的JavaScript , HTML或PHP代码无关。 我不确定这是配置问题。 我如何发现此配置?

jQuery AJAX – 意外的令牌+ parsererror

我今天用jQuery和AJAX编写了一个脚本,我收到了一些错误…… 剧本: function changeAdmin(id) { $(document).ready(function() { $(‘#ta-modarea-‘+id).fadeOut(‘fast’); $(‘#ta-m-loading-‘+id).fadeIn(‘fast’); $.ajax({ type: ‘POST’, url: ‘ajax_utf.php?a=changeteamadmin’, dataType: ‘json’, data: { admin : $(‘#admin-id-‘+id).val() }, success: function(data) { $(‘#ta-m-loading-‘+id).fadeOut(‘fast’); $(‘#ta-modarea-‘+id).text(data.msg).fadeIn(‘fast’); }, error: function(jqXHR, textStatus, errorThrown) { $(‘#ta-m-loading-‘+id).fadeOut(‘fast’); $(‘#ta-modarea-‘+id).text(‘HTTP Error: ‘+errorThrown+’ | Error Message: ‘+textStatus).fadeIn(‘fast’); } }); return false; }); } 运行后,我收到此错误消息: HTTP Error: SyntaxError: Unexpected token < | […]

当对$ .ajax的响应为301时,我可以通过编程方式获取新的URL吗?

当对xhr请求的响应是301时,有没有办法获取最终重定向到的URL? 我的网站包含来自旧版本的大量遗留url,这些url会返回301对正确新url的响应。 出于实用目的,我希望能够向旧URL发出请求,并能够检索新的URL,即发送请求到“/oldpage.aspx?foo=someParam”,获取新的URL“/ arbitaryNewPageName / someParam”。 我在firebug控制台中一直在玩这个: $.ajax({ url: “/oldpage.aspx?foo=someParam”, success: function(response, status, jqxhr){ //poking around, trying to get the new URL, “/arbitraryNewPage/someParam” console.log(jqxhr.getAllResponseHeaders()); console.log(jqxhr); }, beforeSend: function(jqxhr, settings){ console.log(jqxhr); console.log(settings); } }); 我可以在firebug中看到,当这段代码运行时,它会对“/oldpage.aspx?foo=someParam”执行一次GET,并获得301响应,然后另一个GET为“/ arbitaryNewPageName / someParam”。 对于第一个请求,我在响应标头的Location值中看到重定向的URL。 不幸的是,第二个请求是传递给$ .ajax.success函数的,它只在请求头的Referrer值中有重定向的URL。 是否有可能拦截对第一个响应的响应,或者可能会看到第二个请求的请求标头? 编辑:感谢大家的回复。 我想我需要提供一些背景来澄清我到底在寻找什么。 业务用户要求我创建一个将旧URL与新URL相关联的列表。 由于我已经实现了将旧URL重定向到服务器上的新URL的方法,因此我希望能够减少这项工作,并创建一个脚本,将请求放置到旧URL并获取请求被重定向到的URL。 像这样的东西: for (var i = 0; i < arrayOfLegacyUrls.length; i++) […]

一个记录到我们后端的JavaScript前端日志记录系统?

我们为服务器端服务建立了一套记录系统。 具体来说,我们的Django项目大量使用了Python日志记录模块,因此我们的集中式日志记录系统会调用对logger.info() , logger.warn()和logger.error()调用。 我想在我们的前端有一个等价物,我有一些想法: 会有某种自定义日志记录对象通过JavaScript公开,它会通过XmlHttpRequest将消息发送到后端。 我想在客户端具有等效的日志记录级别: debug , info , warning和error 。 当我们在本地开发(调试模式)时,我希望通过console.log()将这些日志消息记录到浏览器/ Firebug控制台。 在生产中,应该完全删除debug消息。 我记得有一种方法可以捕获所有未捕获的JavaScriptexception,因此应该在error级别记录这些exception。 我们已经在使用谷歌分析事件跟踪了 ,对于我们创建的任何系统而言,它都会很好地与之结合。 这是一个好主意吗? 你会怎么做? 有现成的解决方案吗? (FWIW,我们在前端使用jQuery。) 更新:简化问题: https : //stackoverflow.com/questions/1423267/are-there-any-logging-frameworks-for-javascript

纯Javascript中的AJAX Post实现

在纯Javascript中是否有任何AJAX Post的实现(可能使用xmlhttprequest)? 例如,如果我有这样的表格: 这是我在jQuery中实现的AJAX $(‘#register_form’).submit(function(e) { var postData = $(this).serializeArray(); var formURL = $(this).attr(“action”); /* start ajax submission process */ $.ajax({ url: formURL, type: “POST”, data: postData, success: function(data, textStatus, jqXHR) { alert(‘Success!’); }, error: function(jqXHR, textStatus, errorThrown) { alert(‘Error occurred!’); } }); e.preventDefault(); //STOP default action /* ends ajax submission process */ }); 我可以不使用jQuery做同样的事情吗? […]