Reputation: 68952
Can jquery ajax code call a webservice from another domain name or another website?
Like this:
$.ajax({
type: "POST",
url: "http://AnotherWebSite.com/WebService.asmx/HelloWorld",
data: "{'name':'" + $('#price').val() + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) { alert(msg); }
});
And how should I config this webservice?
Upvotes: 3
Views: 16783
Reputation: 2016
You need to use a JSONP call. Last two paragraphs on this page. Go over the basics.
Upvotes: 1
Reputation: 2946
Making requests for other domains are forbidden in the most browsers due to Same origin policy.
A few exceptions are
Upvotes: 0
Reputation: 7445
What is commonly done is have your jQuery call a web service on your server, and have that web service communicate with the external web service. Not the most preferred method, but it works.
Upvotes: 0
Reputation: 57958
you can use JSONP to make cross domain requests. with jquery you can make a jsonp request using the $.json function and specifying a callback in the url like so:
&callback=?
Actually, all you need is the question mark as the param value, the param name can be anything.
Only catch, is that the server you are making the request to must support jsonp
For more in depth information see this blog post about making jsonp work with the new york times json api:
http://notetodogself.blogspot.com/2009/02/using-jquery-with-nyt-json-api.html
Upvotes: 7
Reputation: 22847
No, requesting something from a web server other than the one your code came from is the underpinning of what's called a Cross Site Scripting (XSS) attack. As such, that ability is forbidden. There are ways around it, but they are hacky at best.
The one I've heard the most about is writing a flash application that makes a TCP connection to the server in question.
Upvotes: 0