7

私は何日も解決策を探して修正を試みてきましたが、変更はありません。

上司はMacを使用していて、私はMacを持っていないので、修正を繰り返して出力を私に中継してもらいます。これまでのところ運がありません。

したがって、現在の設定は、検証を通過した後に送信されるユーザー名とパスワードの入力を含むフォームがあります。検証は、ユーザー名とパスワードを検証してからフォームを送信するajax呼び出しです。

Mac ChromeとSafari(webkit)でのみ、空白のajax呼び出しからエラー応答が返されます。

問題を引き起こしているのはphpではないことがわかるように、検証を行うphp関数を削除して単に「hello」をエコーし​​ました。

したがって、ターゲット要素がクリックされたら、ユーザー名とパスワードの値を取得して、ajaxリクエストを送信します。(これは私のphpファイルにヒットし、helloをエコーするはずです)。ただし、代わりにメッセージなしでエラーが返されます。つまり、xhrresponseTextとthrownErrorはすべて空白/nullです。

コードは次のとおりです:(HTML)

<form id="signin_form" method="POST" action="index.php?cmd=Signin">
        <table id="welcomeSignin">
            <tr>
            <td>
                    <div class="welcome"><span class="signin-title-text f-xxlarge-or-link-goth">Welcome Back!</span></div>
                    <div id="error_msg"></div>
                    <table id="input_field_table">
                        <tr>
                                <td class="input-field-cell">
                                    <div class="singin-titles f-medium-gr-bold">Username</div>
                                </td>
                                <td class="input-field-cell">
                                    <div class="signin-inputs"><input class="signin styled" type="text" name="user_name"></div>
                                </td>
                        </tr>
                        <tr>
                            <td class="input-field-cell">
                                <div class="singin-titles f-medium-gr-bold">Password</div>
                            </td>
                            <td class="input-field-cell">
                                <div class="signin-inputs"><input class="signin styled" type="password" name="user_pass"></div>
                                <div class="forgot"><a href="" class="forgot-password f-small-or-link">Forgot your password?</a></div>
                            </td>
                        </tr>
                        <tr>
                            <td colspan="2">
                                <input type="hidden" name="post_type" value="signin">
                                <span id="create"><span class="f-medium">Don't have an account? <a href="" class="create"><span class="f-medium-or-link">click here</span></a></span></span> &nbsp;
                                <span class="active-login"><input type="checkbox" class="signin-radio" name="active_login"> <span class="f-medium"> Keep me signed in</span></span>
                                <div id="sign_in"><span class="signin-submit-button"><img src="../images/ready-create-icon.png"></span> <span class="signin-submit-text f-xxxlarge-gr-title-link">Sign In!</span></div>
                            </td>
                       </tr>
                    </table>
                </td>
            </tr>
    </table>

特別なことは何もありません。これがjqueryのピースです:

$('#sign_in').click(function(){
    var url = window.location.href;
    $('#error_msg').html('');
    var username = $('input[name="user_name"]').val();
    var password = $('input[name="user_pass"]').val();
    var err = '';
    $.ajax({
        url: ajaxUrl+'validate_signin',
        type: 'GET',
        cache: false,
        data: { username: encodeURIComponent(username), password: encodeURIComponent(password)},
        success: function(data, status, xhr){
            if(data !== 'OK'){
                err = data;
                $('#error_msg').html(err);
                return false;
            }else{
                $('#signin_form').submit();
                return false;
            }
        },
        error: function(xhr, ajaxOptions, thrownError){
            var tmp_err = "";
            tmp_err = ":: "+xhr.responseText+" :: "+xhr.responseXML+" :: ";
            alert(tmp_err);
            alert(xhr.responseText);
            alert(thrownError);
            window.location.href = url;
            }
        });
        return false;
});

phpファイルは次のとおりです。echo"hello"; 出口; テストのエラーを回避するためだけに。

ここでいくつか、encodeURIComponent()を追加しました。これは、特殊文字と空白の問題を説明する投稿を見たためです。(機能しませんでした)成功した​​場合:通常のデバッグのためにステータスとxhr変数を含めました。データ。

現在エラーです:これは毎回発生するものですが、すべての応答が空白または未定義です。ある種のまともなエラーが発生することを望んでいましたが、何も発生しません。現在、これは最近Mountian LionにアップグレードされたMacと、Webkit(Chrome / Safari)ブラウザーでのみ発生します。

jQueryを使用せずにXMLHttpRequestだけを実行しようとしましたが、同じことがわかりました。

これは、PCのIE、Firefox、Chrome、Safariで機能し、MacのFireFoxでも機能します。

最後に、これは以前彼のために働いていました、私は彼のアップグレードの前に信じています。

どんな助けでも素晴らしいでしょう。私は髪の毛を抜いています。jQueryではphpよりも環境に配慮しているので、誰かが私を助けてくれることを願っています。

4

1 に答える 1

3

これは構成の問題でした。この問題は、先頭の www を付けずにドメインを入力した場合に発生しました。ドメイン名について。

ヘッダーを追加しています('Access-Control-Allow-Origin: *'); これをphpファイルに追加すると解決します。許可または使用する特定のドメインを指定できます *.

于 2012-10-22T15:32:35.000 に答える