为什么这个API在通过php代理调用时不再有效? 我该如何解决?

Here is the API: http://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=true

You can see the JSON object if you go to the url

I found the source-code for a simple PHP proxy from here: http://www.daniweb.com/web-development/php/code/216729/php-proxy-solution-for-cross-domain-ajax-scripting

I can visit sites using the proxy, but when I call the API through the proxy, I get an error. Does anyone know why this may be, and how to fix it?

This error occurs with calls to certain other sites as well. Just included the google one as an example.

(www.mydomain.com/proxy.php?proxy_url=http://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=true)

That proxy class use the same author's http class. Its documentation stipulates that the user (you) is responsible for urlencoding the requested IURL.

I figured out how to fix it. I need to call encodeURIComponent on the url before appending it to the proxy.