0

我正在尝试使用 jquery ajax 从 CGI 中获取值。我无法更改 CGI 的任何设置,因为它不在我自己的服务器上。

我对 CGI 的了解是,如果我直接在浏览器地址栏中录制它:

“http://otherdomain/cgi-bin/getvalue.exe?value”

然后我得到一个响应值,即 1234,它显示在空白浏览器窗口中。

通过以下 ajax 调用,我在 firebug -> network -> response 选项卡 (1234) 中获得响应值。但我无法访问 javascript 中的值。console.log(data) 只返回“未定义”。

有没有办法用javascript捕捉价值?

我想我必须将 ajax 请求作为 dataType: "script" 发送,因为密码(cookie)也必须发送到 CGI。如果我选择 dataType: "text" 来自 cookie 的密码不会在请求标头中发送。

    $.ajax({
        type: "GET",
        url: "http://otherdomain/cgi-bin/getvalue.exe?value",
        crossDomain: true,
        cache: true,
        dataType: "script",
        success: function(data, textStatus, jqXHR) {
            console.log(data);
        },
        error: function(jqXHR, textStatus, errorThrown) {
            console.log(errorThrown);
            console.log(textStatus);
            console.log(jqXHR);         
        }   
    });
4

1 回答 1

1

由于同源策略AJAX 不允许跨域请求,但响应类型为 的请求除外JSONP。您需要在服务器上设置代理以使用 AJAX 进行查询,该代理将请求提交到其他域,然后将收到的响应返回给 AJAX 调用。

于 2012-04-04T20:57:26.690 回答