2012-10-10 3 views
3

Ajax에서 PUT에 문제가 있습니다.PUT jQuery 문제

피들러를 사용하여 URL : http://domain.com:58226/api/Person/1에 PUT을 실행하고 요청 본문 : { "firstName": "Stan", "lastName": "Dard"}을 사용하면 작동합니다.

하지만이 같은 행동을 할 아약스를 사용하는 경우, 그것은 작동하지 않습니다는 :

$.ajax({ 
data: '{"firstName":"Stan","lastName":"Dard"}',  //{action:'x',params: ['a','b','c']} 
url: 'http://domain.com:58226/api/Person/'+id, 
type: 'PUT', 
success: function(result) { 

alert("Uppdaterad!"); 
     } 
    }); 
+0

Ajax'PUT '은 일부 브라우저에서 지원되지 않을 수 있습니다. – VisioN

+0

나는 파이어 폭스와 크롬을 시험했다. firstName 및 lastName의 값은 Null이됩니다. 그러나 그것은 피 들러에서 작동합니다. jave는 데이터를 보내려는 JSONstringify도 시도했습니다 : – rubin

+1

"무엇을 기대하지 않았으며"대신에 무엇을 얻었습니까? 예 : 어떤 오류 메시지가 나타 났습니까? –

답변

0

나는 데이터가 문자열 될 필요가있다 생각합니다. 객체는 여기서보고있는 쿼리 문자열로 변환됩니다.

JSON.stringify(obj) 메서드를 사용하면 개체를 String으로 변환 할 수 있습니다.

+0

나는 Stringifyit을 시도했다고 썼다. 그리고 그것은 솔루션의 일부였습니다. contentType : 'text/json'을 보내고 문자열을 사용해야했습니다. 이제 작동합니다! 고맙습니다! – rubin

+0

@ user1713837 잘 작동합니다. – rahul

0

에 따르면 jquery docs에 따라 모든 브라우저가 지원하지는 않습니다.

sds

그러나 피들러에서 작동합니다.

Fiddler는 (는) 브라우저가 아닙니다.

0

이 StackOverflow의 포스트를 살펴 보자. "당신은 보안상의 이유로 jQuery를 사용하여 도메인 간 AJAX 요청을 할 수 없다"

How to get/post/delete/put information with jQuery and AJAX

+0

도메인 간 아약스 요청을 수행하지 않습니다. 이 경우 동일한 도메인입니다 – rubin

+0

이 경우 "json"및 contentType을 "application/json; charset = utf-8"으로 설정하려고 시도 했습니까? http://encosia.com/3-mistakes-to-avoid-when-using-jquery-with-aspnet-ajax/를 참조하십시오. – AztecXocolatl

0

답변은 JSON.stringify 개체 및 변경 contentType : text/json 것입니다.