Jquery ajax方法请求体是​​null但邮递员正常工作

时间:2016-05-11 07:53:40

标签: javascript jquery ajax mule httplistener

我正在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。

任何帮助将不胜感激,非常感谢提前!

1 个答案:

答案 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

希望这有帮助。