2013-10-25 2 views
4

Мне нужно, чтобы имитировать эти локоны командыJQuery установить заголовок в сообщении запроса

curl -i -H "Accept: application/json" -H "Content-type:application/json" -X POST -d '{"username":"pippo","password":"secret123"}' http://url.org/api/login 

с помощью JQuery, я сделал таким образом

$(document).ready(function() { 
    $.ajax({ 
     url:"http://urlapi/user/login", 
     type:"POST", 
     headers: { 
     "Accept" : "application/json; charset=utf-8", 
     "Content-Type": "application/json; charset=utf-8" 
     }, 
     data:{ username: "pippo", password: "secret123" }, 
     dataType:"json" 
    }) 
}); 

Я до сих пор имеет содержание типа текст/HTML. Это правильно?

+0

Это кажется правильным. – Lorenz

+0

У вас возникли проблемы? – christiandev

ответ

0

Вы пробовали вариант contentType?

$(document).ready(function() { 
    $.ajax({ 
     url:"http://urlapi/user/login", 
     type:"POST", 
     headers: { 
     "Accept" : "application/json; charset=utf-8" 
     }, 
     contentType:"application/json; charset=utf-8", 
     data:{ username: "pippo", password: "secret123" }, 
     dataType:"json" 
    }) 
}); 
2

Возможно, он работает для меня ... Вы уверены, что ищете правильный запрос? Взгляните на HTTP-запрос в следующем JSFiddle; она действительно содержит Content-Type заголовок: http://jsfiddle.net/KqGY4/1/

$(document).ready(function() { 
    $.ajax({ 
     url:"http://fiddle.jshell.net/user/login", 
     type:"POST", 
     headers: { 
     "Accept" : "application/json; charset=utf-8", 
     "Content-Type": "application/json; charset=utf-8" 
     }, 
     data:{ username: "pippo", password: "secret123" }, 
     dataType:"json" 
    }) 
}); 
2

Try beforeSend в вызове JQuery AJAX:

$(document).ready(function() { 
    $.ajax({ 
     url:"http://urlapi/user/login", 
     type:"POST", 
     beforeSend: function(xhr){ 
       xhr.setRequestHeader("Content-Type","application/json"); 
       xhr.setRequestHeader("Accept","application/json"); 
     }, 
     data:{ username: "pippo", password: "secret123" }, 
     dataType:"json" 
    }) 
}); 
0

, если вы все еще хотите использовать .post() -> Вызов этой функции перед

$.ajaxSetup({ 
    headers: { 
     'Content-Type': 'application/json', 
     'Accept': 'application/json' 
    } 
}); 

все запросы jquery после того, как в нем будут эти заголовки.

Смежные вопросы