0

我的开发环境由用于快速 Javascript 开发的 Apache HTTP 服务器和提供 JSON REST API 的应用程序服务器 (WebSphere) 组成。当然Access-Control-Allow-Origin是设置(到*)。

以下代码导致错误:

 xhr.post({
  url: "http://localhost:8080/rest-sample/rest/test/list",
  handleAs: "json",
  load: onload
 });

 RequestError: Unable to load
 http://localhost:8080/rest-sample/rest/test/list status: 0
 ErrorCtor()create.js (Zeile 13) onError()xhr.js (Zeile 80)     

 var err = Error.call(this, message),

引发了 JavaScript 错误,而不是发送 AJAX 请求。然而,与此同时,以下 jQuery snipplet 功能完善:

    var url = "http://localhost:8080/rest-sample/rest/test/list"
    $.post(url, {}, onLoad, 'json')

我的问题是:我做错了什么?如何使用 Dojo 将 AJAX 请求发送到其他服务器?

我正在使用道场 1.9

4

2 回答 2

1

我认为 xhr.post 不再受支持,我建议使用 dojo/request,或者至少使用 dojo/request/xhr

require(["dojo/request/xhr"], function(xhr){
  xhr("http://localhost/rest-sample/rest/test/list", {
    handleAs: "json",
    method: "POST"
  }).then(function(data){
    // Do something with the handled data
  }, function(err){
    // Handle the error condition
  }, function(evt){
    // Handle a progress event from the request if the
    // browser supports XHR2
  });
});

如果是跨源问题,我建议在您的 http 服务器上使用 ReverseProxy。

将此添加到您的 httpd.conf

ProxyPass /rest-sample/ http://localhost:8080/rest-sample/
于 2013-06-28T11:28:03.853 回答
1

您的服务器还必须发送Access-Control-Allow-Headers: x-requested-with.

于 2013-06-29T18:30:04.453 回答