2014-07-23 3 views
0

서비스 요청을하는 Chrome 확장 프로그램을 쓰고 있습니다. 나는 동일한 원점 POST 아약스 요청을 할 때Cross origin ajax 요청이 Request Payload를 JSON 형식으로 전달하지 않습니다.

, 내 데이터 객체는 JSON 형식으로 전달되는 :

: 나는 POST 요청을 볼 때

크롬 디버거에서
$.ajax(sameOriginURL, { 
    data : { 
     "foo1": "bar1", 
     "foo2": "bar2" 
    }, 
    dataType: "json", 

    headers: { 'Content-Type':'application/json'} 
}) 

, 요청 페이로드로 나타

{ContentType: "JSON", foo1: "bar1", foo2: "bar2"} 

하지만 크롬 디버거에서 크로스 원점 requst (sameOriginURL 대신 해당 요청에 crossOriginURL를 삽입)와 동일 할 때, POST 요청이 같은 요청 페이로드와 함께 보여줍니다

foo1=bar1&foo2=bar2 

및 호출하는 서비스가 그렇게 좋지 않으므로 직렬화 예외가 발생합니다. 요청 페이로드를 JSON 객체로 전달하는 방법.

답변

3

이 여기에 답을 찾았습니다 JQuery Post sends form data and not JSON

내가해야 할 일을했을 모든이 작업은 JSON.stringify 내 데이터 객체를 마무리했고 일했다!

$.ajax({ 
    type: 'POST', 
    url: '<url>', 
    contentType: 'application/json; charset=utf-8', 
    dataType: 'json', 
    data: JSON.stringify(object) 
}); 
관련 문제