Получить JSON данные с помощью Ajax звонка с внешнего URL - PullRequest
0 голосов
/ 14 января 2020

Я хочу вызвать веб-сервис с методом POST, это URL

https://innovation.spa.uvm.mx: 22580 / webs-images / rest / imagx

я изменен URL-адрес из-за конфиденциальности компании, в которой я работаю, это пример URL-адреса, но исходный URL-адрес имеет такую ​​же структуру

Я сделал это в POSTMAN со следующей строкой JSON:

{
"personid" : "20369"
}

в POSTMAN все работает нормально, я получаю статус 200 OK.

Но при моем ajax звонке я получаю ошибку 500. net :: ERR_ABORTED 500 Ошибка. Это мой ajax звонок:

$.ajax({
  url: "https://innovation.spa.uvm.mx:22580/webs-images/rest/imagx",
  type: "POST",
  dataType: 'json',
  contentType: 'application/json; charset=utf-8',
  data: JSON.stringify({
    "personid" : "20369"
  }),      
  success: function(result){
    console.log(JSON.stringify(result));
  },
  error: function(exception){
    alert("Error" + exception);
  }
});

1 Ответ

2 голосов
/ 14 января 2020

Вы не делаете запрос POST, вы делаете запрос GET.

JSONP не может делать запросы POST из-за способа, которым он работает .

Предположительно, веб-служба ожидает POST-запрос и ошибки, потому что не получает его.


Возможно, вы добавили туда jsonp, пытаясь обойти Единую политику происхождения, JSONP делает это только в том случае, если веб-служба, с которой вы явно запрашиваете , поддерживает JSONP (чего не должно быть в наши дни, потому что у нас есть CORS (который дает гораздо больший контроль и не несет рисков для безопасности) присущий JSONP)).


Даже если вы удалите jsonp, вы заявляете contentType: 'application/json; charset=utf-8',, но значение data не JSON , Если вы передаете объект в data, тогда jQuery с URL кодирует его. Если вы хотите отправить JSON, вам нужно кодировать его самостоятельно с помощью JSON.stringify.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...