【发布时间】:2016-04-16 05:05:01
【问题描述】:
大多数 javascript ajax 教程/示例表明请求只能是相对路径,这意味着不能调用其他 Web 服务器。我想调用不包含在同一应用程序中的 Web 服务,并且需要具有绝对路径url.当我调用类似http://192.168.1.62:8080/TRACER-REST-API/webapi/projects/16/releases/2/issues 的东西时,ajax xhr 调用类似于 http:localhost:8080/app/http://192.168.1.62:8080/TRACER-REST-API/webapi/projects/16/releases/2/issues
var XHR = null;
var $ajaxService = (function() {
function getXHRObject() {
var xmlHttpObject = null;
try {
//for old IE
xmlHttpObject = new ActiveXObject("Msxml2.XMLHTTP");
} catch (oldIEException) {
try {
// For IE 6.0+
xmlHttpObject = new ActiveXObject("Microsoft.XMLHTTP");
} catch (IESixPlusException) {
xmlHttpObject = false;
}
}
if (!xmlHttpObject && xmlHttpObject !== undefined) {
// firefox/chrome
xmlHttpObject = new XMLHttpRequest();
}
return xmlHttpObject;
}
return {
call: function makeServerCall(httpMethod, uri, isAsync, headers, postData, responseCallback) {
console.log(uri);
XHR = getXHRObject();
if (XHR != null) {
XHR.open(httpMethod, uri, isAsync);
if (headers != null) {
//XHR.setRequestHeader();
}
if (httpMethod === 'POST' && postData !== undefined) {
XHR.send(postData);
} else {
XHR.send();
}
XHR.onreadystatechange = responseHandler(responseCallback);
}
}
}
function responseHandler(callBack) {
if (XHR.readyState == 4) {
switch (XHR.state) {
case 200:
callBack();
break;
case 500:
throw new Error("Internal Server Error");
default:
throw new Error("Error occurred during server call");
}
}
}
})();
【问题讨论】:
-
应该在同一个域中
-
是否可以有相同的主机和不同的域?
标签: javascript jquery ajax