2011-02-18 3 views
71

문자열을 ajax Post 매개 변수로 보내려고합니다.jQuery POST 매개 변수로 문자열 보내기

다음 코드 :

$.ajax({ 
    type: "POST", 
    url: "http://nakolesah.ru/", 
    data: 'foo=bar&ca$libri=no$libri', 
    success: function(msg){ 
    alert('wow'+msg); 
    } 
}); 

가 작동하지 않습니다. 왜?

+2

나는 당신이 PHP 개발자이며, 당신도 이것을 한 것을 알았다 :'ca $ libri = no $ libri'. 단지 여기 있는지 확인하십시오. JS가 있어야하는 PHP 구조를 실수로 사용하려고하지 않았습니까? 이 문자열에'$ libri' 변수의 값을 포함 시키려면''foo = bar & ca '+ $ libri +'= no '+ $ libri'를 시도하십시오. – treeface

+0

nono :) 나는 PHP로 js를 생성하는 모든 순간을 알고 있습니다. : 그것은 APS에서 아약스 변수의 이름입니다. 내가 아약스와 일부 사이트를 구문 분석 파서를 만듭니다. 그리고 지금 나는 왜 오류가났다. coz crossdomain 쿼리입니다. 내 서버에 먼저 쿼리를 작성해야합니다 :) – Mirgorod

답변

144

는 다음과 같이하십시오 : 이것은 단지 미래의 독자 .. 여전히 실제 있는지

$.ajax({ 
    type: 'POST', 
    // make sure you respect the same origin policy with this url: 
    // http://en.wikipedia.org/wiki/Same_origin_policy 
    url: 'http://nakolesah.ru/', 
    data: { 
     'foo': 'bar', 
     'ca$libri': 'no$libri' // <-- the $ sign in the parameter name seems unusual, I would avoid it 
    }, 
    success: function(msg){ 
     alert('wow' + msg); 
    } 
}); 
+1

데이터가 아니어야합니다 : {foo : 'bar'}, 아포스트로피없이 '? –

+6

@MariusStanescu, 둘 다 동등한 동등한 자바 스크립트 구문입니다. –

+3

또한 ca $ libri의 $는 완벽하게 괜찮습니다. –

27
$.ajax({ 
    type: 'POST',  
url:'http://nakolesah.ru/', 
data:'foo='+ bar+'&calibri='+ nolibri, 
success: function(msg){ 
    alert('wow' + msg); 
     } 
    }); 
+11

이것이 내가 $ .post 데이터를 문자열로 보내는 방법을 찾으러 여기에 온 이유입니다. 허용되는 대답은 전혀 도움이되지 않습니다. .고맙습니다. – chiliNUT

+0

동의했다. 나는 개발중인 프레임 워크에서 문자열이 필요한 곳에서도 좋은 대답을했다. 내 상황에서는 문자열 옆에 변수를 둬서이 작업을 할 수있었습니다. 문자열의 형식은 '? var = value & var2 = value2' –

4

여부. 매개 변수를 URL의 일부로 전달하는 것이 실제로 필요한 경우 jQuery.param()을 사용해야합니다.

1

아니 직접 질문에 대한 답 .. 그러나 다음은 오직 나를 위해 작동하는 데 사용되는 구문입니다 -

data: '{"winNumber": "' + win + '"}', 

그리고 서버 메소드의 인수를 사용하여 매개 변수 이름과 일치

8

data: JSON.stringify({ 
    'foo': 'bar', 
    'ca$libri': 'no$libri' 
}), 

이 API는 REST 클라이언트 작업을했다 : 유사한 응용 프로그램에 대해이 같은 JSON.stringify()data 객체를 포장했다 브라우저에서 jquery ajax로 작동시키지 못했습니다. stringify는 해결책이었다.

+1

사람이었습니다. 감사! –

+0

왜 우리가 이것을해야만 했습니까? –

+0

확실하지 않은 경우 응답의 일부 문자를 문자열로 간주해서는 안됩니다. –

7

나는 당신의 질문을 이해하지 못했다. 이처럼 아약스 호출에 "전통적인"매개 변수를 추가 : 대답은

$.ajax({ 
    traditional: true, 
    type: "POST", 
    url: url, 
    data: custom , 
    success: ok, 
dataType: "json" 
}); 

을 그리고 그것은 문자열로 전달 매개 변수와 함께 작동합니다.

+0

감사! 이것은 나의 하루를 절약합니다! –

0

문자열 값을 Ajax의 문자열 매개 변수에 전달할 때 문제가 발생했습니다. 너무 많은 인터넷 검색 후, 나는 아래와 같이 사용자 지정 솔루션을 생각해 냈습니다. 여기

var bar = 'xyz'; 
var calibri = 'no$libri'; 

$.ajax({ 
    type: "POST", 
    dataType: "json", 
    contentType: "application/json; charset=utf-8", 
    url: "http://nakolesah.ru/", 
    data: '{ foo: \'' + bar + '\', zoo: \'' + calibri + '\'}', 
    success: function(msg){ 
     alert('wow'+msg); 
    }, 
}); 

, 돋움 두 개의 문자열 변수이고, 당신은 웹 방식에서 각각의 문자열 매개 변수에 어떤 문자열 값을 전달할 수 있습니다.

관련 문제