Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 使用json类型的数据进行跨域调用_Jquery_Asp.net_Jsonp - Fatal编程技术网

Jquery 使用json类型的数据进行跨域调用

Jquery 使用json类型的数据进行跨域调用,jquery,asp.net,jsonp,Jquery,Asp.net,Jsonp,我做了一个跨域点击下面的代码 $.ajax({ url: "http://localhost:4417/TravelMirchiB2C/Microsite.asmx/SaveFromMicrosite", data: { x: JSON.stringify(data) }, contentType: "application/json; charset=utf-8", dataType: "jsonp", success: function(js

我做了一个跨域点击下面的代码

 $.ajax({ url: "http://localhost:4417/TravelMirchiB2C/Microsite.asmx/SaveFromMicrosite",
    data: { x: JSON.stringify(data) },
    contentType: "application/json; charset=utf-8",
        dataType: "jsonp",
        success: function(json) {
        if (json.d="true")
            alert("Saved Successfully");
        },
        error: function() {
            alert("Hit error fn!");
        }
    });
在服务器端,我使用一个asp.net处理程序(.ashx)页面和一个.cs页面来写入我的方法(我必须向其调用)。但当我从浏览器传递字符串时,它工作正常,但在传递json类型数据时失败

公共字符串SaveFromMicrosite(PackageQueries x)----它不

公共字符串SaveFromMicrosite(字符串x)----它可以工作


PackageQueries是一个类

,用于此方法:

public string SaveFromMicrosite(PackageQueries x)
{
    ...
}
您应该将整个数据发布为JSON:

$.ajax({
    ...
    data: JSON.stringify({ x: data }),
    ...
});

否则,
jQuery.ajax
将把你的数据编码成
application/x-www-form-urlencoded
格式,其中一个键
x
哪个值将是你的JSON,ASP.NET将不会自动判定它。

什么“失败”?顺便说一句,JSON.stringify的结果是string,最好用ide来显示区别。@Alexei Levenkov=我编辑了这个问题,请看最后一行