2013-12-10 3 views
0

작은 문제가 있습니다. 내 웹 사이트에서 호스팅되는 PHP 프록시를 사용하여 JSON을 검색하는 AJAX 호출을 보냈습니다. 그것은 좋은 일하고 있지만, 공간이 인수있을 때마다, 그것은 20 %로 인코딩됩니다 나는 다시 얻을 :PHP 프록시를 사용하여 JSON을 검색하는 아약스 호출이 % 20에서 실패합니다.

{"status":{"http_code":400},"contents":"<html><body><h1>400 Bad request<\/h1>\nYour browser sent an invalid request.\n<\/body><\/html>\n\n"}

어떻게 다른 내가이 일을 할 수있는 공간을 인코딩 할 수 있습니다? 다음은 잘못된 요청 URL의 예입니다.

http://www.mysite.com/ba-simple-proxy.php?url=https%3A%2F%2Fwww.eventbrite.com%2Fjson%2Fevent_search%3Fcity%3DSanta%20Monica%26region%3DCA%26country%3DUS%26within%3D15%26within_unit%3DM%26start%3D2013-12-10%26max%3D50

편집 : 공간은 도시 이름 "산타 모니카"에 나타납니다 여기에 AJAX 요청 :

$.ajax({ 
    type: 'GET', 
    url:'http://www.mysite.com/ba-simple-proxy.php?url=https%3A%2F%2Fwww.eventbrite.com%2Fjson%2Fevent_search%3Fcity%3DSanta%20Monica%26region%3DCA%26country%3DUS%26within%3D15%26within_unit%3DM%26start%3D2013-12-10%26max%3D50', 
    dataType: "json", 
    success: jsonFunction, 
    error: jsonFunction 
}); 
+0

AJAX 요청을 확인 하시겠습니까? – tymeJV

+2

URL의 공백은'% 20'이 아니라'+'로 인코딩되어야합니다. –

+0

죄송합니다. % 20을 +로 바꾸려고 시도하고 '400 나쁜 요청'메시지가 표시되는 것을 잊어 버렸습니다. – MartyBoggs

답변

1

돈을 도움이 될 것입니다 기능 URL에서 데이터를 직접 인코딩하려고하지 마십시오. jQuery가 당신을 위해 그것을하도록하십시오.

var search = { 
    city: 'Santa Monica', 
    region: 'CA', 
    country: 'US', 
    within: 15, 
    within_unit: 'M', 
    start: '2013-12-10', 
    max: 50 
}; 
var url = 'https://www.eventbrite.com/json/event_search?'+$.param(search); 

$.ajax({ 
    type: 'GET', 
    url:'http://www.mysite.com/ba-simple-proxy.php', 
    data: { 
     url: url 
    }, 
    dataType: "json", 
    success: jsonFunction, 
    error: jsonFunction 
}); 
+0

와우, 이걸 가르쳐 줘서 고마워! :) 당신은 Tony Stark 여야합니다! – MartyBoggs

+0

아니, 나는 그의 사무실에 앉아있는 웹 개발자 일뿐 ... 아니면 내가? 어쨌든, 내가 도울 수있어서 기뻐 .-D –

0

당신이 (URLDECODE을 사용할 수 있습니다) 그것은 당신에게

관련 문제