0

私はプロのプログラマーではなく、ウェブからこれを拾おうとしているので、私の質問がばかげているように思われる場合は事前に申し訳ありませんが、過去2日間これを調査して役に立たなかった.

これが私のコードです:

function view(data)
{
    alert (data);
}

function test()
{
    var url = 'someurl';

    $.ajax({
        type: 'POST',
        url: url,
        async: false,
        contentType: "application/json",
        dataType: 'jsonp',
        data: "Basic=YWRtaW46cHNhZG0xbg==",
        headers: {
            "Basic": 'YWRtaW46cHNhZG0xbg=='
        },
        success: view(data)
    })
}

しかし、実行するたびに、「データが定義されていません」というエラーが表示されます。リクエストが受け取った実際のレスポンスにアクセスするにはどうすればよいですか? 応答を警告するコード (ただし、私のコードを使用) を教えていただければ、そこから取得できると思います。

ありがとう!!!


ですから、まず第一に、迅速かつ詳細な対応に心から感謝します!

私は両方の方法を試しましたが、「未定義データ」のエラーは発生しませんでした。私が理解していないのは、どの関数を呼び出しているのですか?? そして、変数の中に「データ」を入れたいだけなのに、プロキシする関数が必要なのはどうしてですか?

そうは言っても、新しい問題が発生しました-何らかの理由でFF/Chromeが設定したプロパティを無視し、ヘッダーなしで「GET」として送信しているため、エラーが発生します:

Request .com:xxxx?callback=jQuery191023387945420108736_1384464320088&        Basic=YWRtaW46cHNhZG0xbg==&_=1384464320089
Request Method:GET
Status Code:401 Unauthorized
Request Headersview source
Accept:*/*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Cache-Control:no-cache
Connection:keep-alive
Cookie:JSESSIONID=EC56CA6ADB540E1B6785B318DD0886CD
Host:IP:8083
Pragma:no-cache
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)     Chrome/30.0.1599.101 Safari/537.36
Query String Parametersview sourceview encoded
callback:jQuery191023387945420108736_1384464320088
Basic:YWRtaW46cHNhZG0xbg
_:1384464320089
Response Headersview source
Content-Length:77
Date:Wed, 13 Nov 2013 11:15:40 GMT
Secsph-Request-Id:1164775931060804669
Server:NA"

主なリクエストには、何がそれを呼び出しているのか、それが問題に関連しているのかわからない二次的なリクエストも伴います:

Request :nikkomsgchannel        /e?00160023002b00550046004b00660050005e005800280055005c007a002200590050004d004a005600520004002000530055003600210010005d005900540056000b006a003300500054002c0030005400470056001f0047004f00490023000f005b003000300042005c0056001f00550059004b002b000f0057002c002f005d005c00560050005f005a
Request Headersview source
Cache-Control:no-cache
Pragma:no-cache
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)     Chrome/30.0.1599.101 Safari/537.36
Query String Parametersview sourcevie encoded
00160023002b00550046004b00660050005e005800280055005c007a002200590050004d004a005600520004002000530055003600210010005d0

何かご意見は?

4

3 に答える 3

0

これを試して..

function test() {
            var url = 'someurl';
            $.ajax({
                type: 'POST',
                url: url,
                async: false,
                contentType: "application/json",
                dataType: 'jsonp',
                data: "Basic=YWRtaW46cHNhZG0xbg==",
                headers: {
                    "Basic": 'YWRtaW46cHNhZG0xbg=='
                },
                success: function(data) {
                     console.log(data);
                     // /\ this will show on console the returned data.
                     //the variable 'data' actually contains the returned data.
                     // here you can do whatever you want with the returned data
                     //if you want to alert the response:
                     alert(data);
                }
           });
        }
于 2013-11-14T21:14:49.463 に答える
0

これを行うと、すぐsuccess: view(data)に実行され (現在存在しないものを関数に渡そうとします)、その関数からの戻り値をコールバックとして設定しようとします。view(data)dataviewsuccess

代わりに、コールバックとして関数参照を渡すだけです。

success: view

このview関数は、AJAX 要求が成功した応答を返したときに呼び出され、その応答を引数としてdataパラメーターに渡します。

于 2013-11-14T21:51:33.627 に答える
0

試す:

function test() {
    var url = 'someurl';

    $.ajax({
        type: 'POST',
        url: url,
        async: false,
        contentType: "application/json",
        dataType: 'jsonp',
        data: "Basic=YWRtaW46cHNhZG0xbg==",
        headers: {
            Basic: 'YWRtaW46cHNhZG0xbg=='
        },
        success: function (data) {
            alert(JSON.stringify(data));
        }
    });
}

これはあなたがやろうとしていることのようです(JSON文字列を警告してください)

于 2013-11-14T21:18:19.517 に答える