Rahul_RJ
Rahul_RJ

Reputation: 2805

Cross domain ajax request

I want to get the HTML response page from the cross-domain URL.

for this I am using the ajax request as,

 $.ajax({
            type: 'GET',
            url: "http://wcidevapps.com/salescentral/idisk/0001000383/iDisk",
            dataType: "json",
            success: function (response) {
                $(response).find('li a').each(function () {
                    listHref.push($(this).attr('href'));
                });

            }
        });

But after requesting it doesn't respond with any result back.

Upvotes: 14

Views: 88534

Answers (4)

Abhisek Das
Abhisek Das

Reputation: 113

<script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
  <script type="text/javascript">
    function NameAFunctionName() {
        $.ajax({
          url: 'http://wcidevapps.com/salescentral/idisk/0001000383/iDisk',
          type: 'GET',
          dataType: 'json',
          headers: {
            //WRITE IF THEIR HAVE SOME HEADER REQUEST OR DATA
          },
          crossDomain: true,
          success: function (data, textStatus, xhr) {
            console.log(data);
          },
          error: function (xhr, textStatus, errorThrown) {
            console.log(errorThrown);
          }
        });
    }   
</script>

Upvotes: 7

radu florescu
radu florescu

Reputation: 4363

Check documentation : http://api.jquery.com/jQuery.ajax/

crossDomain (default: false for same-domain requests, true for cross-domain requests)

Type: Boolean

If you wish to force a crossDomain request (such as JSONP) on the same domain, set the value of crossDomain to true. This allows, for example, server-side redirection to another domain. (version added: 1.5)

Upvotes: 5

Sahin Yanlık
Sahin Yanlık

Reputation: 1201

If you are using asp.net web service then you need to add this to webconfig file;

<system.webServer>
    <directoryBrowse enabled="true"/>
<httpProtocol>
  <customHeaders>
    <add name="Access-Control-Allow-Origin" value="*" />
    <add name="Access-Control-Allow-Headers" value="Content-Type" />
  </customHeaders>
</httpProtocol>
</system.webServer>

Upvotes: 3

marty
marty

Reputation: 4015

My suspicion is that you see the issue because the page you're requesting does not respond with a json(p) response, but responds with a redirect to:

http://wcidevapps.com/salescentral/idisk/0001000383/iDisk/

(note the trailing slash)

which then returns content type:

Content-Type:text/html;charset=ISO-8859-1

Edit: If your intention is to retrieve the above site's data cross-domain, for further parsing by your script, I suggest that you choose one of the following:

Assumption 1: YOU are in control of the pages on server "http://wcidevapps.com"

In that case, you have two options: Either add CORS header "Access-Control-Allow-Origin: *" to the response (and configure the client ajax() call with dataType:"html"), or create a special JSON(P) page that delivers the same data as JSON (with padding) (and configure the client ajax() call like in the OP, with dataType:"jsonp")

Assumption 2: YOU are NOT in control of the pages on server http://wcidevapps.com

In that case, the only option I can think of is setup a proxy on a site that you control. Have that proxy "proxy" the requests/responses to "http://wcidevapps.com", but add the CORS header "Access-Control-Allow-Origin: *" to the response (and configure the client ajax() call with dataType:"html")

Upvotes: 4

Related Questions