XMLHttpRequest для http://требуется перекрестный поиск ресурсов (CORS), а предполетный период - только в IE

Я сторонний разработчик. Я кодирую только с клиентской стороны, поэтому я точно не знаю об ошибке. Я искал CORS, но до сих пор не знаю, что было с моим проблемным курсом.

Я пытаюсь отправить данные в REST.

$.ajax({
     url        : urlPost,
     type       : "POST",
     data       : JSON.stringify(obj),
     dataType   : "json",
     contentType: "application/json",

     success: function(res){
         console.log(JSON.stringify(res));
     },

     error: function(res){
         console.log("Bad thing happend! " + res.statusText);
     }
});

Заголовки веб-сервиса показывают в firebug firedfox:

enter image description here

Он работает для всего браузера, который я использовал, за исключением IE 10, я получил две ошибки:

  • SEC7118: XMLHttpRequest для http://mysite/project/wl.svc/AddWL/ требуется перекрестный поиск ресурсов (CORS).

  • SEC7119: XMLHttpRequest для http://mysite/project/wl.svc/AddWL/ требуется предварительный просмотр CORS.

Ответ 1

Я думаю, что у вас есть CORS, поэтому я рекомендую вам посмотреть на Cors-где угодно

Я использовал его, и он отлично работает все, что вам нужно, чтобы добавить URL-адрес вашего запроса на https://cors-anywhere.herokuapp.com/, который является прокси-сервером для запроса выбранного URL

var cors_api_url = 'https://cors-anywhere.herokuapp.com/' + urlPost;

$.ajax({
     url        : cors_api_url,
     type       : "POST",
     data       : JSON.stringify(obj),
     dataType   : "json",
     contentType: "application/json",

     success: function(res){
         console.log(JSON.stringify(res));
     },

     error: function(res){
         console.log("Bad thing happend! " + res.statusText);
     }
});

Ответ 2

Существует решение для jQuery, но вы должны использовать полный URL-адрес для отправки запроса (например, http://www.mysite.com/project/wl.svc/AddWL/), потому что это уязвимость.

$.support.cors = true;
$.ajax({
    url:urlPost,
    type:"POST",
    crossDomain: true,
    data:JSON.stringify(obj),
    dataType:"json",
    contentType: "application/json",
    success:function(res){
        console.log(JSON.stringify(res));
    },
    error:function(res){
        console.log("Bad thing happend! " + res.statusText);
    }
});