Я использую тот же код для dojo.request
, что и в предыдущем проекте, за исключением URL-адреса и того факта, что я вызываю службу iteminfo
вместо addFeatures
слоя. Однако я всегда получаю следующую ошибку:
Unable to load http://foobar.com/arcgis/rest/services/MapServer/info/iteminfo status: 0
Я подтвердил это в Firefox и IE. Статус, отображаемый Firebug или Visual Studio, всегда равен 0, даже если статус, отображаемый в Fiddler, равен 200. Он также показывает 0, когда я что-то путаю и получаю 401 в Fiddler.
Итак, вот мой код:
var promise = require('dojo/request').post(uri, {
handleAs: "json",
query: "f=pjson",
headers: {
"X-Requested-With": null
},
//timeout: 60000, //commenting this in and out changes nothing
withCredentials: true
});
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
}
);
Мне нужен вывод в формате JSON, поэтому я добавил параметр query
; без него Fiddler вместо этого отображает выходные данные в формате HTML. Я нашел ответ, указывающий, что для ответа может потребоваться время, но либо это не мой случай, либо что-то более сложное, чем простой вариант timeout
необходим.
Все мои тестовые переменные (res
,rej
...) содержат false
. Таким образом, запрос кажется нерешенным, невыполненным и т. Д. В коде, но Fiddler возвращает ответ - я недостаточно разбираюсь в этих сетевых искусствах, чтобы сделать из этого вывод, поэтому я задаю вопрос.
Кроме того, у меня смутное впечатление, что некоторые дополнительные заголовки должны быть решением. Я пытался добавить accept
(ничего не изменилось) и content-type
(получилось pre-flight и Fiddler сообщил о статусе 401).
РЕДАКТИРОВАТЬ: заголовок ответа содержит следующую информацию о безопасности:
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept
Access-Control-Allow-Origin: http://localhost:30322 //origin for now
Access-Control-Allow-Origin: *