为什么这个ajax调用失败了?

时间:2012-02-24 10:16:24

标签: c# jquery .net ajax cross-domain

我在http://www.mywebsite.com,我用http://myownajax.projects.it/folder/mypage.aspx进行跨域ajax调用(使用jQuery):

$.ajax({
    url: 'http://myownajax.projects.it/folder/mypage.aspx ',
    success: function(data) {
        console.log(data);
    }
});

轻松打印“Hello”:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="mypage.aspx.cs" Inherits="folder_mypage" %>

Hello

但事实上我得到200 OK错误。为什么?我该如何解决?

2 个答案:

答案 0 :(得分:5)

跨浏览器脚本(又称XSS)被浏览器阻止,因为它存在安全风险。

如果您必须从其他网址检索数据,则必须仅使用JSONP格式和GET请求。

试试这个:

$.ajax({
    url: 'http://myownajax.projects.it/folder/mypage.aspx',
    type: 'get', // this is optional as 'get' is the default.
    datatype: 'jsonp',
    success: function(data) {
        console.log(data);
    }
});

答案 1 :(得分:2)

您必须指定dataType:"jsonp",并且跨域ajax仅支持type:"GET"。 <{1}}是不允许的。