-1

重複の可能性:
PHPでAjaxを検出し、リクエストが自分のWebサイトからのものであることを確認します

画像をアップロードするためのフォームがあり、使用していますAjaxform()

$('#uploadformimage').ajaxForm({

    beforeSend: function() {
         $(".progress").css("display","block");
         $("#response").html("");
        status.empty();
        var percentVal = '0%';
        bar.width(percentVal)
        percent.html(percentVal);
    },
    uploadProgress: function(event, position, total, percentComplete) {
        var percentVal = percentComplete + '%';
        bar.width(percentVal)
        percent.html(percentVal);
        //console.log(percentVal, position, total);
    },
    complete: function(xhr) {
            $(".bar").css("width","100%");
            $(".percent").html("100%").delay("8000").parent().slideUp(1000);
            $("#response").html(xhr.responseText);

    }
}); 

server-sideこれは私のJavaScriptコードです。フォームがajaxによってアップロードされているかどうかを知りたいですか?一部のコンピューターではJavascriptが無効になっている可能性があるため、別のデータを表示したいですか?

4

5 に答える 5

2
if ($_SERVER['HTTP_X_REQUESTED_WITH'] === 'XMLHttpRequest')
{
    // This is an AJAX request
}
于 2012-10-06T06:57:13.887 に答える
1

デモを作成しました。結果は次のとおりです。

Request URL:http://localhost/test.php
Request Method:POST
Status Code:200 OK
Request Headersview source
Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Content-Length:32
Content-Type:application/x-www-form-urlencoded; charset=UTF-8
Host:localhost
Origin:http://localhost
Referer:http://localhost/
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.11 (KHTML, like Gecko) Ubuntu/12.04 Chromium/20.0.1132.47 Chrome/20.0.1132.47 Safari/536.11
X-Requested-With:XMLHttpRequest
于 2012-10-06T07:00:58.790 に答える
0

あなたはオプションを渡すことができますGET /foo?xhr=1

次にPHPで$_GET['xhr']

于 2012-10-06T06:53:33.857 に答える
0

AJAXが関与していないと仮定しましょう。

Javascript / AJAXが達成できるのは、ユーザーエクスペリエンスを競合他社よりも好ましいものにすることだけです。

それで、それをアップロードするのは人次第であるのに、なぜあなたは画像を気にするのですか?その人はJavascriptを持っていないかもしれません、

最小限に抑えて、ベルとホイッスルを追加するだけです!

于 2012-10-06T07:10:37.163 に答える
0

HTMLでタグを使用して、<noscript>さまざまなHTMLを生成できるため、フォームは別のサーバー側スクリプトに投稿したり、フォームに非表示のフィールドを追加したりできます。

于 2012-10-06T08:16:26.013 に答える