jQueryを使ってjavascriptからphpにAJAXを呼び出す

作品:

    function jsUpvote(photo_id, username) {

        //var getURL = "http://www.uglyfacez.com/gallery/upvote.php?photo_id=" + photo_id + "&username=" + username;

        $.get("http://uglyfacez.com/gallery/upvote.php?photo_id=15&username=user000",
            function(returnValue){
               //do stuff here
        });
    }

私は、ページ上でphpスクリプトを実行し、URLを通してスクリプトに変数photo_idとusernameを渡すために上記の関数を書いた。上記のようにハードコードするとうまくいきますが、JavaScript変数を(getURLで見ることができるように)与えると、全く機能しません。たとえば、これは私がやりたいことですが、うまくいきません:

$.get("http://www.uglyfacez.com/gallery/upvote.php?photo_id=" + photo_id + "&username=" + username,
            function(returnValue){
               //do stuff here
        });

なぜこれはうまくいかず、解決策は何ですか?

編集:私は問題が何かを発見した。何らかの理由で、私のGET URLにwwwを含めると、サーバーからの応答を受信できなくなります。一度URLから削除すると、正常に動作します。

1
@RussellStrauss:Tomalakは、「うまくいきません」という言葉は全く役に立たないと言い、問題を解決するのには役に立たない。 OPはエラーに関する完全な情報を提供し、投稿する前に問題を調査する努力をしていることが一般的に予想されます。他の人々が問題を解決するために時間を寄付しているので、OP側からの最小限の努力はむしろ大歓迎です。
追加された 著者 Tadeck,
そんな気がして申し訳ありませんが、もしうまくいけば、私はここにいません。
追加された 著者 aleroxac,
申し訳ありませんが、私はそれが意味することは、 "コードのブロックは実行されていないと私は理由を理解することはできません。私は周りにはじめて言及しなかったことを気付かなかった。
追加された 著者 aleroxac,

3 答え

これはドメイン間のリクエストに関する問題です。

JSONP などのソリューションを使用することも、別のドメイン(この場合は www サブドメイン)からスクリプトを読み込むこともできます。クロスドメインに関するさまざまな側面や設定を確認するには、 .ajax() documentation page (「クロスドメイン」または「 crossDomain 」を検索してください)。

この問題は基本的に同じ発信元ポリシーに関連する問題です。 上記のドキュメントページで、次のことを読むことができます:

      
  • ブラウザのセキュリティ制限により、ほとんどの "Ajax"リクエストは、同じ発信元ポリシーの対象となります。 ;リクエストは別のドメイン、サブドメイン、またはプロトコルからデータを正常に取得できません。
  •   
  • スクリプトとJSONPリクエストには、元のポリシーの制限がありません。
  •   
2
追加された

jquery .get関数のsysntaxは次のとおりです。

jQuery.get(url [、data] [、success(data、textStatus、jqXHR)] [、dataType])

何かのようなもの:

$.get("http://www.uglyfacez.com/gallery/upvote.php", {'photo_id':photo_id,'username':username},
            function(returnValue){
               //do stuff here
        });

構文の最初の関数のパラメータにデータを置くようにしてみてください、私はこのリンクもあなたを助けるかもしれないと思う:

http://api.jquery.com/jQuery.get/

または、同じ問題が発生した場合は、再度ブラウザでリンクを手動で開き、予期した結果が返ってくるかどうかを確認するためにエラーが返されるかどうかを確認してください。 :)

1
追加された
コードが起動されているときにファイヤーバグのエラーが表示されますか?実際のサイトで正常に実行され、要求を実行していれば、javascriptコードのエラーが発生します。あなたが問題を簡単に検出できるように、ここに投稿するとよいでしょう。 :)
追加された 著者 Christopher Pelayo,
どういたしまして。 :)
追加された 著者 Christopher Pelayo,
私のブラウザで手動でリンクを開くのは問題なく動作します。これは、私の.get呼び出しに問題があることを知る方法です。
追加された 著者 aleroxac,
これはまた私が持っていた別の質問に答える、ありがとう
追加された 著者 aleroxac,

あなたは正しくphoto_idとユーザー名を設定していますか?より多くのコードが役に立ちます。エラーメッセージとは何ですか? FirebugまたはChromeを使用して、エラーが発生しているかどうかを確認していますか? photo_idやユーザー名が正しく渡されていないかのようです。

0
追加された
はい、photo_idとユーザー名の両方が渡され、正しく設定されています。私が警告するなら(getURL);それは私に私が望む正確なURLを与える。私が15のphoto_idとuser000をusernameに渡すと、上記のURLに正確なURLが渡されます。私が使用しているコードはもうありません。ここでエラーを見ることができます: i.imgur.com/Rujzb.png function(returnValue)ブロックは単に実行されません。私はFirebugを使ってデバッグしています。
追加された 著者 aleroxac,
ここに私の次の質問があります。どのようなツールを使用して、URLから送信されたものか、返されたものを確認していますか?私はまだ、スペースや忘れられているものがあるかもしれないと考えています。
追加された 著者 Jamie R Rytlewski,
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com

JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript