Dojo.request.post-返回的promise说"拒绝”;,但服务器似乎已经接受了请求
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: SAMEORIGIN
,Access-Control-Allow-Origin: *
也应该覆盖它(在我们设置Access-Control-Allow-Origin
之前,它被拒绝了)。尽管如此,成功/失败函数都不会被执行。
我也试过dojo/request/iframe
和dojo/request/xhr
,但没有任何变化。除了require语句,我什么都没改。
我应该如何获取和处理响应?我是dojo
的新手,所以我想我误解了一些基本的东西。
编辑:问题出在我的IIS服务器上,它不信任我们的arcgis服务器。新的测试变量表明响应被拒绝。我认为esri.config.defaults.io.corsEnabledServers.push
应该处理这个问题,但要么我用错了,要么它更复杂。
第2版:esri.config.defaults.io.corsEnabledServers.push
是我试图通过esri/request
解决一些问题时的产物。我设法又迈出了一步,将"X-Requested-With": null
添加到了标头中。响应不再被拒绝,但我仍然无法执行回调函数。
已解决!我解决了我在编辑中提出的问题。剩下的问题是uri生成——我通过Orchard的ViewBag动态生成,直到我将地址更改为另一个服务,我才注意到它是错误的。现在我使用了一个静态URI,一切都正常。
- 如何检测第三方广告服务器请求
- Javascript onclick需要点击两次,然后会创建越来越多的服务器请求
- 新的会话cookie直到下一个服务器请求才提供
- 将所有angular2捆绑包包含在index.html中会使导入从内存获取数据,而不是再次从服务器请求数据
- web工作程序中不同的服务器请求行为
- 如何使用
- 使用angular js通过代理服务器请求Http
- 正在使用node.js服务器请求文件
- 每x秒从服务器请求数据的最佳方法
- 如何在调用服务器请求时删除错误
- 我应该在我的PhoneGap应用程序中包括我的所有源,还是从远程服务器请求它们
- 节点.js简单的 Web 服务器请求生命周期
- 使用 jQuery 从 NodeJS 服务器请求数据
- 如何从HTTPS服务器请求HTTP服务器的javascript文件
- 如何在没有持续服务器请求的情况下在 AngularJS 中进行视图重定向
- 角度验证:如果用户输入无效的电子邮件或密码,则限制服务器请求
- AJAX 从服务器请求另一个 JavaScript 或函数
- AngularJs.路由.处理服务器请求.很少有问题
- WebWorkers-新Worker不断从服务器请求相同的脚本
- 从服务器请求JSON并用Javascript进行解析