2

http://mysite.comで正常に動作する jquery スクリプトがあります。

次のようになります。

Javascript:

$('#form_changePass').live('submit', function() {
    //alert('form_changePass cliked');
    $.POST("_ajaxCall.php", $(this).serialize(),
    function(data){
        var json = eval('('+data+')');
        //alert(data);    
        if(json.message=='alert') {
            $('div.info').hide();
            $('div.alert').show().html(json.string);
        }
        if(json.message=='info') {
            $('div.alert').hide();
            $('div.info').show().html(json.string);
        }
    }
    );
    return false;
})

PHP スクリプト:

if ($_POST['formType']=="form_changePass") {
.....
.......
   $arr = array( 'message' => 'info', 'string' => $INFO['updatePass']);
   echo json_encode($arr);
}

ドメインを https に移動すると、jquery スクリプトが機能しなくなりました。戻り値は返されません。何も起こりません。

また、javascript で POST を getJSON に変更しようとし、php スクリプトで $_POST を $_GET に変更しましたが、まだ機能していません。

誰でもアイデアはありますか?

4

2 に答える 2

1

httpとhttpsは異なるドメインと見なされるため、クロスドメインの問題です。修正は次のとおりです。

header('Access-Control-Allow-Origin: https://domain.com');

これをphpスクリプトに追加します。または、これは開発中のみなので、あまり心配する必要はありません。

header('Access-Control-Allow-Origin: *');
于 2012-05-04T23:08:33.800 に答える
-1

.serializeフォームデータを文字列としてシリアル化するため、代わりにパラメータを使用して送信してください。

$('#form_changePass').on('submit', function() {
    //alert('form_changePass cliked');
    $.POST("_ajaxCall.php", { formData: $(this).serialize() },
    function(data){
        var json = eval('('+data+')');
        //alert(data);    
        if(json.message=='alert') {
            $('div.info').hide();
            $('div.alert').show().html(json.string);
        }
        if(json.message=='info') {
            $('div.alert').hide();
            $('div.info').show().html(json.string);
        }
    }
    );
    return false;
})

そして、メソッドの使用をやめて.live()ください。それらは現在非推奨になっています。メソッドを使用.on()します。

于 2012-05-04T23:07:47.050 に答える