2

ajaxでphp関数を実行しようとしていますが、関数が応答しません.chromeを使用してネットワークの結果を確認すると、これが表示されます

編集:WAMPでこのローカルを実行しています

manageusers.php
/geopedia/core
POST
200
OK
text/html
jquery-1.10.1.min.js:6
Script
850 B
625 B
7 ms
4 ms

それで、それはうまくいくべきではありませんか?

Ajax 関数

    $(document).ready(function() {
    $('#facebook').click(function() { 
        var first_name = $('#first_name').val();
        var last_name = $('#last_name').val();
        var username = $('#username').val();

        $.ajax({ 
            url: 'core/manageusers.php',
            type: 'POST',
            data: {
                facebook:first_name,
                last_name:last_name,
                username:username

            },
        });
    });
}); 

イベントハンドラー

if(isset($_POST['facebook'])){ 
echo("inside");
include_once('core/class.users.php');
$users = new Users();

$first_name = $_POST['first_name'];
$last_name  = $_POST['last_name'];
$username   = $_POST['username'];

$fb_user = $users->fb_user($first_name,$last_name,$username);
}
4

4 に答える 4

0

以前に削除された回答の改訂された再投稿:

このスクリプトをローカルで実行している場合は、POST リクエストで dataType パラメータを text または json に設定してみてください:$.ajax({ url: 'core/manageusers.php', type: 'POST', dataType: 'text', data : { .......

@Alfieはい、実際にこれをローカルで実行しています。いいですね。json と text の両方の dataType を追加しようとしましたが、うまくいきませんでした。– ダイモンド

過去に似たような悪夢を見たことがあります。それは、ネットワーク セキュリティ機能であるクロス ドメイン ポリシー ファイルにかかっています。ウィキ: http://en.wikipedia.org/wiki/Same_origin_policy

IE (ただし、テストしたときは firefox ではありません) で、jQuery リクエスト中に dataType を 'text' に設定すると (上記のように) 機能することがわかりました。success:...他の人が提案したように、戻りパラメーターも使用しました。それ以外の場合は、crossdomain.xml ファイルを作成してルート ディレクトリに配置してみてください。

これの「緩い」(すべてを許可する) バージョンは次のようになります。

`<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
    <site-control permitted-cross-domain-policies="all" />
    <allow-access-from domain="*" to-ports="*" />
    <allow-http-request-headers-from domain="*" headers="*" />
</cross-domain-policy>`
于 2013-06-14T23:58:32.023 に答える