0 0

Jquery是之$.ajax否支持XMLHttpRequest Level 2(HTML5)方式的跨域访问?3

前提是:不使用"jsonp"注入,服务器返回XML。

 

在FF4、CHROME12等对HTML5支持较好的新浏览器下,Jquery 1.5+环境下,

$.ajax等是否能直接支持XMLhttpRequest level2 ?

 

服务器端为:Rails 3.07 + Nginx。

 

FF4返回经典的:

[Exception... "Access to restricted URI denied" code: "1012" nsresult: "0x805303f4 (NS_ERROR_DOM_BAD_URI)" location: "http://192.168.1.108:3000/javascripts/jquery-1.6.2.js?1309919318 Line: 7869"]

 

没有查到具体的资料。


问题补充:查了一下,服务器环境为:Rails 3.07 + Phusion Passenger Standalone / Nginx. <br /> <br />那个chrome浏览器调试环境来看,AJAX调用被发出了,有Request,但是,没有response。 <br /> <br />怀疑是 Passenger 没有设置 Access-Control-Allow-Origin 响应 报头。 <br /> <br />仍未解决。

问题补充:帖2篇相关文章: <br /> <br /> <br /><a href="http://www.oriontransfer.co.nz/blog/2011-05/cross-domain-ajax/index" target="_blank">http://www.oriontransfer.co.nz/blog/2011-05/cross-domain-ajax/index</a> <br /> <br /><a href="http://enable-cors.org/" target="_blank">http://enable-cors.org/</a> <br /> <br /><a href="https://gist.github.com/1064640" target="_blank">https://gist.github.com/1064640</a>

问题补充:1、response.headers上加的,最后render的,程序本来是这样的,类似这样: <br /><pre name="code" class="java">
response.headers['Content-Type'] = 'application/xml'
response.headers['Etag'] = latest_msg_id.to_s
-----把Access-Control-Allow-Origin加在这里————
renderml =&gt; @message
</pre> <br />但是不管用。 <br /> <br /> <br />2、跨域之后,看Chrome的调试信息,AJAX调用应该已经发生,只是没有回应,(这个地方也不是很确定,从FF的信息来看,或许是没有执行$.AJAX)。就怀疑是不是PASSENGER的问题,是不是报头要在passenger这里弄。 <br /> <br />小弟学艺不精。或许还就是纯的JAVASCRIPT的问题,压根jquery就没执行。
2011年7月06日 11:10

3个答案 按时间排序 按投票排序

0 0

用fidder2或者wireshark看看到底response加了header没有吧

firebug或者web inspecter可能不准吧

2011年7月07日 12:57
0 0

你怎么加的header呢

render加的还是response.headers

2011年7月07日 00:59
0 0

看了jquery没有用到XDomainRequest,IE应该不行,其他的浏览器应该不用客户端特别做什么吧

2011年7月06日 13:56

相关推荐

    jquery form jquery.form.js

    2. 文件上传:通过XMLHttpRequest Level 2,jQuery Form可以实现跨域文件上传,兼容多种浏览器。 3. 进度条显示:在上传大文件时,提供进度反馈,用户可以直观了解上传进度。 4. 多种提交模式:支持GET和POST方式,...

    jQuery跨域问题

    jQuery的`$.ajax()`或`$.getScript()`函数支持JSONP。当设置`dataType`为'jsonp'时,jQuery会自动处理回调函数,并在请求的URL中添加一个参数(通常是`callback`),服务器返回的响应数据会被包装在一个JavaScript...

    jquery中ajax处理跨域的三大方式

    HTML5引入的XMLHttpRequest Level 2(XHR2)允许浏览器在发送请求时添加`Origin`头部,服务器通过设置响应头`Access-Control-Allow-Origin`来指定哪些源可以访问。例如,设置`Access-Control-Allow-Origin:*`表示...

    jquery-12api.zip

    4. AJAX:jQuery的`$.ajax()`方法是进行异步数据请求的主要接口,支持GET和POST等多种HTTP方法,以及JSONP、XMLHttpRequest Level 2等跨域请求方式。 5. 版本差异:虽然jQuery 1.2相对于现代版本可能有些过时,但它...

    jQuery AJAX XMLHttpRequest对象PPT

    使用jQuery的$.ajax()函数,可以更方便地发起AJAX请求,同时处理兼容性问题。$.ajax()函数允许自定义各种选项,如数据类型、请求头、回调函数等,使得AJAX编程更加简洁和高效。 总结来说,XMLHttpRequest对象是前端...

    jQuery-1.8.3(&2.1.4).min.js&jquery;.fileupload&jquery;.iframe-transport

    这种技术对于那些不支持FormData或XMLHttpRequest Level 2的浏览器尤其重要。 总结来说,jQuery库及其相关插件为开发者提供了强大的工具,使得前端开发变得更加便捷。jQuery-1.8.3和2.1.4版本代表了其在不同阶段的...

    jquery.from.js & juery.js

    6. **兼容性**:`jquery.form.js`支持多种提交方式,包括传统的POST和PUT,以及XMLHttpRequest Level 2的FormData。 在实际使用中,我们可以这样引入和使用这两个文件: ```html &lt;script src="jquery.js"&gt; ...

    jquery-3.4.1.zip

    8. **Ajax交互**:jQuery的`$.ajax()`, `$.get()`, `$.post()`等方法简化了异步数据请求,支持JSONP、XMLHttpRequest Level 2等多种跨域请求方式。 9. **链式操作**:jQuery的一大特色是链式操作,如`$('div')....

    Ajax跨域查询完美解决通过$.getJSON()实现

    - **XHR2(XMLHttpRequest Level 2)**:新版本的XHR支持CORS,也可以实现跨域请求。 总结,`$.getJSON()`结合JSONP是一种实用的跨域查询方法,尤其适用于需要兼容旧版浏览器的场景。但随着现代浏览器的普及,CORS...

    jquery电子文档chm

    $.ajax() returns the XMLHttpRequest that it creates. In most cases you won't need that object to manipulate directly, but it is available if you need to abort the request manually. Note: If you ...

    ajax之核心XMLHttpRequest中文参考手册

    **Ajax核心XMLHttpRequest中文参考手册** Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使网页实现异步更新。...

    ajax学习文档下载

    使用jQuery的`$.ajax()`、`$.get()`、`$.post()`等函数,可以更方便地发起Ajax请求,并处理响应数据。 ### 5. CORS跨域问题 Ajax请求可能遇到同源策略限制,即只能访问与当前页面同源(协议、域名、端口相同)的...

    jquery-1.8.3.js 官方包

    3. Ajax处理:jQuery 1.8.3的Ajax模块也得到了强化,支持JSONP、XMLHttpRequest Level 2和更好的错误处理。 4. 兼容性:jQuery 1.8.3继续保持对老版本浏览器的良好支持,包括IE6/7/8等,同时对现代浏览器的特性也做...

    jquery ajax上传文件

    为了解决这些问题,jQuery提供了一种基于AJAX的文件上传方式,通过XMLHttpRequest Level 2(XHR2)的FormData接口实现。本篇文章将详细介绍如何使用jQuery AJAX进行文件上传。 首先,我们需要了解`ajaxupload.js`这...

    Ajax.基础教程.pdf

    通过$.ajax()、$.get()、$.post()等函数,可以方便快捷地发起Ajax请求。 ### 5. JSONP(JSON with Padding) 对于跨域请求,由于浏览器的同源策略限制,Ajax通常无法直接实现。JSONP提供了一种规避策略,通过动态...

    html5 ajax 文件上传跨域进度问题

    综上所述,HTML5的Ajax文件上传跨域需要结合CORS、FormData、XMLHttpRequest Level 2的进度事件等技术,同时考虑到安全性、错误处理和可能的库支持。开发者在实现时应充分理解这些概念,并根据项目需求进行合理配置...

    jquery ajax fileupload.js 下载

    它利用HTML5的`FormData`对象和`XMLHttpRequest Level 2`的API,支持多文件选择、进度条显示、错误处理等特性。 4. **异步文件上传**: 使用FileUpload.js,用户可以选择多个文件并异步上传,这意味着文件上传不会...

    ajax中文帮助文档

    例如,jQuery的$.ajax()、$.get()、$.post()等函数,使得Ajax使用更加简便。 **6. XHR2(XMLHttpRequest Level 2)**: - 添加了对跨域请求的支持,使用CORS(跨源资源共享)。 - 新增了上传进度事件,支持文件上传...

    jQuery2.0.2.zip最新版

    jQuery的Ajax功能简化了异步数据获取和提交,`$.ajax()`, `$.get()`, `$.post()`等方法在2.0.2中继续提供,支持JSONP、XMLHttpRequest Level 2等特性。 8. **文件结构**: 压缩包中的两个文件,`jquery-2.0.2.js`...

Global site tag (gtag.js) - Google Analytics