2016-05-26 6 views
1

Вот моя команда curl, предоставленная моим внутренним инженером. Он отлично работает в командной строке. Мне нужно перевести это на реакцию. Я не мог этого сделать, поэтому я пытаюсь сделать это с помощью ajax.Запрос Ajax, эквивалентный команде curl

curl -v -H "Origin: http://example.com" -H "Access-Control-Request-Method: POST" -H "Access-Control-Request-Headers: X-Requested-With" -H "Authorization: ELS <your_token_here>" -X OPTIONS "localhost:9000/proj/user/token/<your_token_here>" 

JS:

_login(username,password){ 
    console.log(username+password) 
    $.ajax({ 
     type: 'POST', 
     contentType:'application/json', 
     url: 'http://localhost:9000/proj/user/token', 
     beforeSend: function(xhr) { 
      xhr.setRequestHeader("Origin", "http://localhost:3000"); 
      xhr.setRequestHeader("Access-Control-Request-Method", "POST"); 
      xhr.setRequestHeader("Access-Control-Request-Headers", "X-Requested-With"); 
      xhr.setRequestHeader("tokem", token); 

     }, success: function(data){ 
      console.log(dtata); 
     }, error: function(e){ 
      console.log(e); 
     } 
    }) 
    } 

я получаю ошибки как JQuery-2.2.4.min.js: 4 Отказался установить небезопасных заголовок "Происхождение" и т.д.

ответ

0

Использование JavaScript в веб-браузера , вы не можете выполнять те же запросы, что и вручную, используя cURL. Это из-за правил безопасности. Из-за этого вы не можете установить заголовок Origin. Браузер утверждает, что заголовок Origin является реальным «источником». См. Также: Chrome Extension: how to change origin in AJAX request header?

Так что попробуйте, если он работает так, как ожидалось, без установки заголовка Origin.

+0

Вы правы. Я не могу настроить заголовок запроса ajax. Я узнал, в чем проблема с моим звонком. Я принимал неправильные заголовки запросов (имя пользователя, pwd). Как только я удалил это, он начал работать. Спасибо за ваш ответ. – tv3free