0

ホスティングサーバーにAJAX連絡フォームがあり、別のドメイン(別のホスティング)にmail.phpファイルがあります。jQueryでフォームを検証し、AJAXを使用してメールを送信しようとしていますが、phpファイルを呼び出すと、メールボックスにメールが送信されますが、「成功」メッセージが返されません。代わりに、「空の文字列」を取得します。

私はjsにいます

    $.ajax({
    type: 'POST',
    url: options.url,
    data: {subject:options.subject, name:$('#name').val(), email:$('#email').val(), message:$('#message').val()},
    success: function(data){
       if( data == 'success') {
           $('#callback').append(options.recievedMsg);
       } else {
           $('#callback').append(options.notRecievedMsg);
       }
    });

そしてphpはこのように見えます

    <?php
    define( "RECIPIENT_NAME", "John Smith" );
    define( "RECIPIENT_EMAIL", "my.email@mail.com" );
    define( "EMAIL_SUBJECT", "Visitor Message" );

    $senderName = stripcslashes($_POST['name']);
    $senderEmail = stripcslashes($_POST['email']);
    $message = stripcslashes($_POST['message']);

    if ( $senderName && $senderEmail && $message ) {
        $recipient = RECIPIENT_NAME . " <" . RECIPIENT_EMAIL . ">";
        $headers = "From: " . $senderName . " <" . $senderEmail . ">";
        $success = mail( $recipient, EMAIL_SUBJECT, $message, $headers );
    };

    echo 'success';

    ?>

コンソールの「data」値をチェックインすると(空の文字列)と表示され、ajax if関数では、常にfalseとnotReceivedメッセージが表示されます。

if(data =='success')状態がtrueになる'success'を返すようにphpファイルを作成するにはどうすればよいですか?私はここで何かが欠けていますか?

4

1 に答える 1

1

同一生成元ポリシーのため、AJAXリクエストを別のドメインに送信することはできません。

于 2012-09-14T03:22:58.920 に答える