5

これをdom readyで呼び出すことにより、Ajax経由でweinreを動作させようとしています:

$.ajax({
    url: 'http://debug.build.phonegap.com/target/target-script-min.js#hutber',
    dataType: "script",
    crossDomain: true,
    error: function(data){
        c(data.status);
    },
    success: function(data){
        c(data);
    }
});

今、これが送信されているものです:

 http://debug.build.phonegap.com/target/target-script-min.js?_=1381476442102

つまり、デバッグするには、ランダムに生成された ID を使用する必要があります。私もこれを試しました:url: 'http://debug.build.phonegap.com/target/target-script-min.js?_=hutber',暗闇の中で撮影するだけです。

#hutberでは、リクエストと一緒に が正しく送信されていないと考えて書いていますか?

編集

ちょっと考えてみると、 $.ajax を使用すると、http リクエストを介してスクリプトを動的にロードしていることになります。#varsクエンティンが述べたように、これらはクライアント側であるため、渡すことはできません。ただし、ページの読み込み時に要素が存在するかのように、要素を本文に追加すると、パスを渡すことができることがわかりました。

var s = document.createElement('script');
s.setAttribute("src","http://debug.build.phonegap.com/target/target-script-min.js#hutber");
document.getElementsByTagName('body')[0].appendChild(s);

さて、物事はもう少しうまくいくはずですが、この理論を携帯電話でテストすることはできません. しかし、指が交差しました。

4

1 に答える 1

7

はい、いいえ#hutber。リクエストと一緒に送信されないと考えるのは正しいですが、これが間違っていると考えるのは間違いです。

URL のフラグメント識別子部分は純粋にクライアント側で処理されるため、サーバーに送信することはできません。

サーバーが処理するデータを URL に添付する場合は、クエリ文字列を使用します (?文字ではなく文字で始まります#)。クエリ文字列とフラグメント識別子の両方がある場合は、クエリ文字列が最初に来る必要があります。

data渡すオブジェクトにプロパティを含めると、jQuery はクエリ文字列を生成しますajax(ここにあるように GET を使用している場合)。

data { "_": "hutber" }
于 2013-10-11T07:37:10.917 に答える