Dojo.request.post - 返回的承诺说 "rejected",但服务器似乎已经接受了请求

Dojo.request.post - returned promise says "rejected", but server seems to have accepted the request

我尝试通过 Arcgis JavaScript API 和 dojo/request 向 ArcGIS 要素服务添加要素。我已经被指向 并且我从服务器得到了一些响应,但是在探索不同的解决方案几天后我没有设法执行回调函数。我的代码:

esri.config.defaults.io.corsEnabledServers.push("remotearcgisserver.com");
var uri = "http:/remotearcgisserver.com/arcgis/rest/services/foo/bar/FeatureServer/0/addFeatures"

//no error here, so I suppose the dojo/request is requested correctly
var promise = require('dojo/request').post(uri, {
        data: "features=" + _json + "&rollbackOnFailure=true&f=pjson", handleAs: "json", timeout: 2000,
        headers: {
            "X-Requested-With": null
        }
});

var res = promise.isResolved();
var rej = promise.isRejected();
var ful = promise.isFulfilled();
var can = promise.isCanceled();
var respres = promise.response.isResolved();
var resprej = promise.response.isRejected();
var respful = promise.response.isFulfilled();
var respcan = promise.response.isCanceled();

promise.response.then(
    //success
    function (response) {
        //something
    },
    //fail
    function (error) {
        //something different
    }
);

所有测试变量都保持 'false'(未解决、未拒绝、未完成且未取消)。该服务没有密码,即使它有 X-Frame-Options: SAMEORIGINAccess-Control-Allow-Origin: * 也应该覆盖它(在我们设置 Access-Control-Allow-Origin 之前,它被拒绝了)。尽管如此,success/fail 函数中的 none 仍会执行。

我也尝试了 dojo/request/iframedojo/request/xhr,但没有任何改变。除了 require 语句,我什么都没改变。

我应该如何获取和处理响应?我是 dojo 的新手,所以我想我误解了一些基本的东西。

编辑:问题出在我的 IIS 服务器上,它不信任我们的 arcgis 服务器。新的测试变量显示响应被拒绝。我认为 esri.config.defaults.io.corsEnabledServers.push 应该可以解决这个问题,但要么我用错了,要么它更复杂。

EDIT2:esri.config.defaults.io.corsEnabledServers.push 是我试图通过 esri/request 解决一些问题时的产物。我设法通过将 "X-Requested-With": null 添加到 headers 来迈出另一步。响应不再被拒绝,但我仍然无法执行回调函数。

已解决!我解决了我在编辑中提出的问题。剩下的问题是 uri 生成 - 我通过 Orchard 的 ViewBag 动态生成它,直到我将地址更改为另一个服务时我才注意到它是错误的。现在我使用静态 URI,一切正常。