2

$.ajax() を使用して外部ドメインへの呼び出しを試みましたが、サーバーは呼び出しを受け取りましたが、firebug の応答が jquery.js 行 7760 でエラーになりました。私はそれをさらに進めたような気がしません。

$.ajax({
            type: "GET",
            url: "http://admin:asdfg@149.50.143.241:81/stream.jpg",
            //data: {},
            //async: true,
            //contentType: "application/jsonp; charset=utf-8",
            //headers: {
            //    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.46 Safari/536.5',
            //    'Accept': '*/*',
            //    'Authorization': 'Basic ' + auth
            //},
            //timeout: 500,
            dataType: "jsonp",
            //crossDomain: true,
            beforeSend: function (req) {
                req.setRequestHeader('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.46 Safari/536.5');
                req.setRequestHeader('Accept', '*/*');
                req.setRequestHeader('Authorization', 'Basic ' + auth);
            },
            success: function (data) {
                alert("Success");
            }
        });
4

2 に答える 2

0

jsonp 応答は、javascript メソッド呼び出し内にラップする必要があります。(コールバック メソッド)。

応答が画像であると仮定します。jquery で処理できる可能性は低いようです。

于 2012-07-16T07:28:16.797 に答える
0

ajax 呼び出しを使用して画像を呼び出すことができるかどうかはわかりません。

jsonp を使用すると、ajax 呼び出しで beforeSend が無視されます。

おそらく、サーバーを CORS に対応させ、応答させる必要があります。

このようなもの:

    protected override void OnStartProcessingRequest(ProcessRequestArgs args)
    {
        HttpContext context = HttpContext.Current;    // set cache policy to this page 

        context.Response.AddHeader("Access-Control-Allow-Origin", "*");
        if (context.Request.HttpMethod == "OPTIONS")
        {
            context.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
            context.Response.AddHeader("Access-Control-Allow-Headers", "X-Requested-With, Accept");
            context.Response.AddHeader("Access-Control-Max-Age", "3628800");
            context.Response.AddHeader("type", "application/json; charset=utf-8");
            context.Response.End();
        }
    }

XDomainRequest と XMLHttpResquest を使用して、クライアント側で呼び出しを行います。

ここを見てください:http://andre-pedroso.blogspot.pt/2011/02/javascript-consume-service-with-cross.html

乾杯

于 2012-08-31T10:05:38.013 に答える