2

ローカルマシンで正常に機能しているスクリプトを作成していますが、それをWebサーバーにアップロードすると、$。getJSONリクエストが機能しません。

function loadData(fileName) {
    return $.getJSON(fileName + ".json");
}

var data;

var myFile = "Data";

loadData(myFile).done(function (data1) {
    if (data1 && data1.info) {
        data = data1;
        $.each(data1.info[0], function (key, value) {
            alert(value);
        });
    }
});

私は内部コードの多くを切り取っており、基本的には結果を取得してhtml要素に入れています。要求しているURLはリモートサーバー上にありますが、ハードドライブからこのhtmlページを実行すると機能します。Webサーバーにアップロードすると、ポップにならないので、$。getJSONが実行されていないようです。

フォルダーとしてApacheにアップロードしました

Folder
|
|-->Index.html
|
|-->Data.json
4

2 に答える 2

2

$.getJSON()メソッドに依存せず、$.ajax()代わりに使用してください。リクエストヘッダーをより細かく制御できます。

次のオプションで試して、関数呼び出しをアプリケーションに固有のパラメーターと統合します。

$.ajax({
    type: "POST",
    url: "some-url.json",
    contentType: "application/json; charset=utf-8",
    dataType: "json"
});

$.ajax()メソッドの完全なドキュメントはここにあります。

于 2013-03-30T20:34:29.507 に答える
1

同じ問題が発生しましたが、ローカル開発デバイスではなくリモートサーバーで機能します(プロジェクトをリモートサーバーから新しい開発デバイスにインポートした後)。

設定されていない$_Sessionキーに応じて、PHPスクリプトが通知をスローすることがようやくわかりました。リモート専用サーバーは、ローカルサーバーがどこにあるかに関係なく通知をスローしないように設定されていました。その結果、私のローカルデバイスでは、応答をJSONとして解析できませんでした。JSONリクエストにisset()コマンドを入力した後、実際にはJSONであり、jQueryはそれを正しく解析しました。$_SESSION

サーバーの応答を証明するだけです。FirefoxのWeb開発者->Webコンソールでそれを行うことができます。AJAXリクエストを送信した後に表示されるURLを右クリックし、フィールドにマークを付けてリクエストとその応答を記録します。AJAX呼び出しを再度呼び出した後、URLを検査すると、検査ウィンドウの下部にURLが表示されます。応答が何であるか、そしてそれが正しい形式であるかどうかを直接確認できます。

于 2013-05-05T13:16:34.637 に答える