Reputation: 9
i'm trying to get a value from a CGI with jquery ajax. i can't change any settings of the CGI because it's not on my own server.
all i know about the CGI is that if i directly tape this in a browser address bar:
"http://otherdomain/cgi-bin/getvalue.exe?value"
then i get a response value, i.e. 1234, which is shown in a blank browser window.
with the following ajax call i get the response value in firebug -> network -> response tab (1234). but i can't access the value in javascript. console.log(data) just returns "undefinded".
is there a way to catch the value with javascript?
i think i have to send ajax request as dataType: "script" because a password (cookie) must be send to the CGI as well. if i choose dataType: "text" the password from cookie is not send in the request header.
$.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);
}
});
Upvotes: 0
Views: 1816
Reputation: 38345
Due to the same origin policy AJAX doesn't allow cross domain requests, except those that have a response of type JSONP
. You'll need to set up a proxy on your server to query using AJAX, which submits the request to the other domain then returns the response that it receives to the AJAX call.
Upvotes: 1