适应AJAX的跨域 [英] Adapt ajax for crossdomain
本文介绍了适应AJAX的跨域的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
是跨域以及如何
有可能适应这种code 函数makeRequest(URL){
VAR HTTP_REQUEST = FALSE;
如果(window.XMLHtt prequest){// Mozilla中,Safari浏览器,...
HTTP_REQUEST =新XMLHtt prequest();
如果(http_request.overrideMimeType){
http_request.overrideMimeType(为text / xml');
}
}否则,如果(window.ActiveXObject){// IE
尝试 {
HTTP_REQUEST =新的ActiveXObject(MSXML2.XMLHTTP);
}赶上(五){
尝试 {
HTTP_REQUEST =新的ActiveXObject(Microsoft.XMLHTTP);
}赶上(五){}
}
}
如果(!HTTP_REQUEST){
警报(无法创建一个XMLHTTP实例);
返回false;
}
http_request.onreadystatechange =功能(){alertContents(HTTP_REQUEST); };
http_request.open(GET,URL,真正的);
http_request.send(空);
}
功能alertContents(HTTP_REQUEST){
如果(http_request.readyState == 4){
如果(http_request.status == 200){
receiveData(http_request.responseText);
} 其他 {
警报(Îòâåòñåðâåðàïîëó÷AI,II阿努îøèáêà);
}
}
}
解决方案
在同源策略 prevents的JavaScript在正常情况下,不同来源读取数据。
您可以解决用:
Is it possible adapt this code for crossdomain and how
function makeRequest(url) {
var http_request = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
http_request.overrideMimeType('text/xml');
}
} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) {
alert('Cannot create an XMLHTTP instance');
return false;
}
http_request.onreadystatechange = function() { alertContents(http_request); };
http_request.open('GET', url, true);
http_request.send(null);
}
function alertContents(http_request) {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
receiveData(http_request.responseText);
} else {
alert("Îòâåò ñåðâåðà ïîëó÷åí, íî åñòü îøèáêà");
}
}
}
解决方案
The same origin policy prevents JavaScript reading data from different origins under normal circumstances.
You can work around with:
- A proxy for the data on the page's origin
- JSONP
- CORS (limited browser support, but possibly good enough for prime time now)
这篇关于适应AJAX的跨域的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文