我正在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-app的节点http-server)中运行,我知道这会影响跨域策略......但我不知道我应该如何配置我的服务来处理这个请求。
Mule总是使用null body获取请求,因为通常当我通过POSTMAN发送相同的请求时,postman将请求的主体转移到[#message.payload]对象中。
当我尝试使用jQuery ajax或javascript XHR等时,在调试器上它显示请求有效负载为空。所以我无法评估请求体......
有人可以帮我解决问题吗?
顺便说一下,我使用Mule ESB 3.7.0进行服务器运行时,jQuery 1.10.2使用ajax。
任何帮助将不胜感激,非常感谢提前!
答案 0 :(得分:1)
尝试使用以下代码
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": {
"content-type": "application/json",
"cache-control": "no-cache",
},
我正在登录 找不到请求的监听器:(OPTIONS)/ feed
希望这有帮助。