我已经阅读了很多关于 CORS 和 Javascript 以及更改帖子中标题的主题,但我找不到我正在寻找的正确示例。
所以我首先要解释一下情况:
- 我无法对网络服务器进行任何更改,因为这超出了我的能力范围(这是一个 SAP Cloud Portal)
- 我只能更改 POST 代码,所以我只能控制我发送的内容。
我遇到的问题在以下帖子中进行了描述: jQuery $.ajax(), $.post 在 Firefox 中将“OPTIONS”作为 REQUEST_METHOD 发送
--> 我的 FF 和 Chrome 标头发送一个 METHOD OPTIONS 而不是 METHOD POST。
我编写了适用于 IE 但不适用于 FF 和 Chrome 的示例代码:
var dataString = "<result><firstname>example</firstname><lastname>ThisIsSparta</lastname></result>";
var urlString = "http://delyo001.you.local:8000/sap/bc/youconsulting/ws/rest/anonymous/z_names_post";
//Add TO SAP.
var aData =
jQuery.ajax({
type: "POST",
contentType: "application/xml",
url: urlString, // for different servers cross-domain restrictions need to be handled
data: dataString,
dataType: "text",
success: function(xml) { // callback called when data is received
//oModel.setData(data); // fill the received data into the JSONModel
alert("success to post");
},
error: function(xml) { // callback called when data is received
//oModel.setData(data); // fill the received data into the JSONModel
alert("fail to post");
}
});
});
或者
var invocation = new XMLHttpRequest();
var url = 'http://delyo001.you.local:8000/sap/bc/youconsulting/ws/rest/anonymous/z_names_post';
var body = '<result><firstname>perthyrtyrtygop</firstname><lastname>sparta</lastname></result>';
invocation.open('POST', url, true);
invocation.setRequestHeader('X-PINGOTHER', 'pingpong');
invocation.setRequestHeader('Content-Type', 'application/xml');
invocation.send(body);
我找到了两种方法来解决这个问题,但没有任何例子: - 用代理做点什么?- 发送特定的标题
有关我的问题的更多信息,请访问:- http://scn.sap.com/message/13697625#13697625