2

こんにちは私はJSONPではなくJSONのみを返すAPIからデータを取得しようとしています。JSONPとしてデータを接続しようとするたびに、JSONを期待していないため、機能しません。したがって、JSONリクエストを解釈できるように、クロスドメインの問題を回避するためにPHPプロキシを使用する必要があると思います。[シンプルなPHPプロキシ][1]は私が使おうとしているものですが、最も基本的な機能を動作させるために非常に時間がかかっています。サンプルページの彼の例にクエリしたいURLを入力すると、機能します。私がそれをするとき、それはそうではありません、時々私は「MissingCommand」(議論が多すぎるか少なすぎることを私に伝えるAPIの方法)またはhttpcode /jsoncode404を受け取ります。

Expensifyは私がクエリしているAPIです。私は最初にAuthenticateコマンドを試しています。ブラウザにこのURLを入力すると、必要な結果が得られます: https ://api.expensify.com?command=Authenticate&partnerName=applicant&partnerPassword=d7c3119c6cdab02d68d9&partnerUserID=expensifytest%40mailinator.com&partnerUserSecret=hire_me

Simple PHP Proxyを使用すると、リクエストURLは次のようになります。http: //people.rit.edu/~cjs6948/exp/ba-simple-proxy.php ?url = https://api.expensify.com?command = Authenticate&partnerName = applyant&partnerPassword = d7c3119c6cdab02d68d9&partnerUserID = expensifytest%40mailinator.com&partnerUserSecret = Hire_me

これが私の非常に単純なjQueryコードです:

var proxy = 'ba-simple-proxy.php';
url = proxy + '?' + "url=" + "https://api.expensify.com?    command=Authenticate&partnerName=applicant&partnerPassword=d7c3119c6cdab02d68d9&partnerUserID=expensifytest%40mailinator.com&partnerUserSecret=hire_me";
$.getJSON( url, function(data){});

「ba-simple-proxy.php」は[ここ][3]にあります。プロキシ経由でクロスドメインAPIに接続しようとした経験はありますか?多分これでも?もっと良いアイデアはありますか?どんな助けでもありがたいです、ありがとう。

4

1 に答える 1

0

パラメータ「partnerName」は、api.expensify.com Web サイトではなく、ba-simple-proxy.php スクリプトに渡されるため、URL をエンコードする必要があります。あなたが探している関数は次のとおりだと思います:encodeURI(uri)

于 2012-05-20T17:03:59.270 に答える