我正在 Mule ESB 上配置一项服务,以提供我一直在使用 jQuery 和 jQuery UI 开发的界面。
Mule ESB 包含一个 http 监听器,其方法是“POST”来获取请求正文并对其进行评估,然后给出必要的响应。
这是我通过 POSTMAN 发送的请求:
var settings = {
"async": true,
"crossDomain": true,
"url": "http://localhost:8081/feed",
"method": "POST",
"headers": {
"content-type": "application/json",
"cache-control": "no-cache",
},
"processData": false,
"data": "{\r\n\t\"vibs\": [\r\n\t\t\"TAS2002\"\r\n\t],\r\n\t\"language\": \"de-DE\"\r\n}"
}
$.ajax(settings).done(function (response) {
console.log(response);
});
Mule ESB 和 Web 应用程序运行在不同的 Web 主机(Mule 的 Web 服务器,Web 应用程序的节点 http-服务器)中,我知道这会影响跨域策略...但我不知道如何应该配置我的服务来处理此请求。
Mule 总是收到带有空正文的请求,因为通常当我通过 POSTMAN 发送相同的请求时, postman 会将请求的正文传输到 [#message.payload] 对象中。
当我尝试使用 jQuery ajax 或 javascript XHR 等时,在调试器上它显示请求负载为空。所以我无法评估请求正文...
谁能帮我解决这个问题吗?
顺便说一下,我使用 Mule ESB 3.7.0 作为服务器运行时,使用 jQuery 1.10.2 来使用 ajax。
任何帮助将不胜感激,非常感谢!
最佳答案
尝试使用以下代码
var settings = {
"async": true,
"crossDomain": true,
"url": "http://localhost:8081/feed",
"method": "POST",
"content-type": "application/json; charset=utf-8",
"cache-control" : "no-cache",
"processData": false,
"data": "{\r\n\t\"vibs\": [\r\n\t\t\"TAS2002\"\r\n\t],\r\n\t\"language\": \"de-DE\"\r\n}"
}
$.ajax(settings).done(function (response) {
console.log(response);
});
使用时"headers": {
“内容类型”:“应用程序/json”,
“缓存控制”:“无缓存”,
},
我的日志为 找不到请求的监听器:(OPTIONS)/feed
希望这有帮助。
关于javascript - jquery ajax方法请求体为空但postman工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37156335/