can jquery ajax call external webservice?

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?

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

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

Method 2

You need to use a JSONP call. Last two paragraphs on this page. Go over the basics.

Method 3

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.

Method 4

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.

Method 5

Making requests for other domains are forbidden in the most browsers due to Same origin policy.

A few exceptions are

  • a user-side extensions, like GreaseMonkey
  • javascript include from the script tag
  • adobe flash application with properly configured server


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x