请原谅我对 Web 开发术语的无知。
我正在尝试执行以下 [WebMethod]:
public static void CreatePendingCaseFromChat(string userInputs)
{
//Do a bunch of stuff here with the userInputs string
}
使用以下 AJAX(位于另一台服务器上):
$.ajax({ type: "POST",
url: "http://www.MyCoolWebDomain.com/Code/MyCode.aspx/CreatePendingCaseFromChat",
crossDomain: true,
data: JSON.stringify(parameters),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data){alert("success in ajax call")},
error: function (data){alert("error in ajax call")}
});
MyCode.aspx 在 Page_Load() 方法中包含以下行:
Response.AppendHeader("Access-Control-Allow-Origin", "*"); //Allow Cross domain AJAX call, update the "*" to be a specific URL
Response.AppendHeader("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
Response.AppendHeader("Access-Control-Allow-Headers", "content-type, x-requested-with");
如果我执行以下操作,而不是 ajax 调用:
var invocation = new XMLHttpRequest();
var url = "http://www.MyCoolWebDomain.com/Code/MyCode.aspx/CreatePendingCaseFromChat"
if (invocation) {
invocation.open('POST', url, false);
invocation.send();
}
else {
alert("no invocation");
}
然后我可以通过 FireBug 确认设置了以下响应标头:
Access-Control-Allow-Head... content-type, x-requested-with
Access-Control-Allow-Meth... GET, POST, OPTIONS
Access-Control-Allow-Orig... *
使用 AJAX 调用,这些标头都不会显示。
无论是使用 AJAX 调用还是使用 XHR 调用,我都想以任何一种方式进行这项工作。
对于 XHR 调用,我不知道如何将 userInputs 字符串发送到 WebMethod。对于 AJAX 调用,我无法通过预检或调用它(OPTIONS 调用)。