0

ヘルプ!実稼働環境で jquery ajax post メソッドを使用すると、500 内部サーバー エラーが発生します。私は以前にこの問題を抱えていましたが、それを理解することはできませんでした。当時、私は「POST」メソッドを「GET」に変更することにしました...そしてそれはうまくいきました。しかし今は、jquery ajax post メソッドを使用できることがより重要になっています。これは単純な ajax post 呼び出しですが、何らかの理由で本番環境で内部的に爆発します。

IIS7 を搭載した Windows 2008 サーバーを使用する Web ファームです。

これが私がやっていることのすべてです。

$.ajax({
    type: "POST",
    url: url,
    data: data,
    success: success,
    dataType: dataType
 });
4

3 に答える 3

2

編集:LAMPを使用していない限り、ほとんど役に立たない..申し訳ありません

通常、apache は当日のログを /var/log/apache2/error_log.1 に保存します ( ls -l | head を実行するだけで .1 が欠落している可能性があります)。

これは、LAMP を使用していることを前提としています。

SSL エラーの場合は、ssl_ を追加します

于 2013-06-14T12:43:10.400 に答える
1

問題が発生しているコードは 1 つだけですか、それとも「すべて」の POST メソッドですか? 以下の「テスト」テンプレート コードを試して、非常に基本的なサーバー側のメソッドでも POST が機能するかどうかを確認できますか。エラーはサーバー側であるため、これはサーバー側で何かが機能することを確認するためのものです。この非常に基本的なコードが機能しない場合、問題がサーバー側の方法であるか、サーバー構成であるかを絞り込むことができます。このようなコードを使用して、より複雑なメソッドを追加する前に POST ができることを確認します。また、Fiddlerを使用すると、エラーに関するより詳細な情報が得られるため、実際に何が起こっているのかを確認できます。

サーバー側のコードがある場所:

[WebMethod]
public string TestMethod(string test)
{
    return "I received the argument: " + test;
}

新しいバージョンの JQuery を使用したクライアント側:

<script>
$(function() {  
    var testVal = "this is a test string";
    $.ajax({
        type: "POST",
        contentType: "application/json",
        data: "{'test':'" + testVal + "'}",
        url: "code.asmx/TestMethod",
        beforeSend: function() {}
    }).done(function(data) {

        alert(data.d);

    }).always(function() {

    }).fail(function(jqXHR, textStatus, errorThrown) {
        alert('Error: ' + errorThrown);
    })
});
</script>

そしておそらくあなたのweb.configで必要です

<configuration>
    <system.web>
    <webServices>
        <protocols>
            <add name="HttpPost"/>
        </protocols>
    </webServices>
    </system.web>
</configuration>
于 2013-06-14T14:01:03.793 に答える