2015-08-19 2 views
1

Я пытаюсь сделать запрос CORS POST с помощью Restangular следующим образом:Restangular | CustomPOST: Я не могу сделать запрос CORS POST, с объектом JSON данных в теле

//data is a json object 
var urlToPost = '/api/deal/update/'+dealId; 
return Restangular.all(urlToPost).customPOST(data, '', {}, { 
        "Content-Type": "application/json", 
        "Access-Control-Allow-Origin": "*", 
        "Access-Control-Allow-Methods": "POST, GET, PUT, DELETE, OPTIONS" 
         }); 

Когда я попал на вызов, на консоли появляется следующее сообщение об ошибке:

XMLHttpRequest cannot load http://55.76.122.145:8080/hulk/api/deal/update/55cd93bd20ce9744aeebff3a. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:9001' is therefore not allowed access. 

И на вкладке Сеть, я могу видеть successful вызов с status 200 увольняют с OPTION методом.

Как это сделать? Что я делаю не так ?

ответ

2

Сообщение об ошибке заклинаниями это для вас:

Нет 'Access-Control-Allow-Origin' заголовок присутствует на запрошенный ресурс. Origin 'http://localhost:9001', следовательно, не допускается.

сервер необходимо ответить на запрос OPTION с ответ включая Access-Control-Allow-Origin заголовок, который сообщает браузеру, что веб-сайт предоставления JavaScript разрешен доступ.

Access-Control-Allow-Origin и Access-Control-Allow-Methods не запрос заголовки. Вы не можете писать JavaScript, который дает разрешение на чтение данных с других сайтов. Это было бы глупо.

+0

Итак, мне нужно внести изменения на стороне сервера, не так ли? Но я получаю ответ статуса успеха 200 от вызова OPTION. Не означает ли это, что на стороне сервера все нормально? –

+1

«Итак, мне нужно внести изменения на стороне сервера, не так ли?» - Да. «Но я получаю ответ на статус статуса 200 от вызова OPTION. Не означает ли это, что на стороне сервера все нормально?» - Это означает, что в отношении сервера все в порядке. Затем браузер переходит «О, сервер также не сказал, что у меня есть разрешение дать ответ на какой-то другой сайт», поэтому я этого не сделаю. – Quentin