我有點想不通出來,情況如下:JQuery的阿賈克斯POST請求遠程Web服務
我打電話上的Web服務的方法是不一樣的機器上使用在我的腳本JS代碼片段後面:
$.ajax({
type: "POST",
url: "http://" + gServer + "/xawebservice/xawebservice.asmx/" + webMethod,
contentType: "application/json; charset=utf-8",
dataType: "json",
cache: false,
async: false,
data: WSParameters,
success: function callFunction(result) { processResults(result, pType, pParam1); },
error: function (xhr, status, error) {
alert(error.toString());
//alert(xhr.toString());
}
});
參數是罰款和測試,網絡方法也是正確的。
爲錯誤消息我得到這個:
- 火狐:[異常... 「失敗」 nsresult: 「0x80004005的(NS_ERROR_FAILURE)」 的位置:「JS框架:: HTTP://
localhost
:7515 /jquery-1.8.3.js :: ::行8434" 數據顯示:無] - 鉻:錯誤:NETWORK_ERR:XMLHttpRequest的異常101
- IE8:沒有運輸
如果我使用的相同的片段上的Web服務是運行在同一臺機器上,沒有問題。如果我通過Web界面使用遠程Web服務,它也可以正常工作。
PS:我搜索了一下,有些頁面推薦了一些跨域參數,但這些參數都無效。不幸的是,使用相對路徑是行不通的。
感謝您的任何努力提前。
溴 vm370
UPDATE: 好吧,我更新了我的代碼得到執行,根據我現有一個CORS請求,但我得到一個錯誤500,在服務器上執行請求直接操作正常,CORS是在服務器上激活。
function xenappRequest(pType, pParam1) {
// CORS request
var url = "http://" + gServer + "/webservice/webservice.asmx/webMethod";
var params = { "appName": pParam1 };
var xhr = createCORSRequest("POST", url);
if (!xhr) {
alert('CORS not supported');
} else {
// Do the request
// Response handlers.
xhr.onload = function() {
//var text = xhr.responseText;
alert('Response from CORS request to ' + url + ': ' + xhr.response);
};
xhr.onerror = function() {
alert('Woops, there was an error making the request.');
};
xhr.send(JSON.stringify(params));
}
}
function createCORSRequest(method, url) {
var xhr = new XMLHttpRequest();
if ("withCredentials" in xhr) {
// Check if the XMLHttpRequest object has a "withCredentials" property.
// "withCredentials" only exists on XMLHTTPRequest2 objects.
xhr.open(method, url, true);
} else if (typeof XDomainRequest != "undefined") {
// Otherwise, check if XDomainRequest.
// XDomainRequest only exists in IE, and is IE's way of making CORS requests.
xhr = new XDomainRequest();
xhr.open(method, url);
} else {
// Otherwise, CORS is not supported by the browser.
xhr = null;
}
return xhr;
}
從FF我得到的500錯誤,在IE8請求土地的xhr.onerror子句中...... 任何想法?
這是您在頁面加載或ajax請求時出現的錯誤嗎?另外,您是否看到了您的請求/響應的內容?你能在這裏粘貼嗎? –
你試過'dataType:「jsonp」,並且讓WSParameters是一個字符串? –
我試過jsonp並得到錯誤500,但是我們內部決定不使用jsonp,因爲它是非官方的字符...所以我要去CORS,但我不確定如何向ws發出Javascript POST請求帶參數的方法。 – vm370