有种棘手的问题。
我正在做一个项目,当用户在自助服务台上结帐时,我们需要允许收据打印输出。出于与驱动程序和格式有关的原因,我使用COM自动处理和Word处理打印收据。我已将此代码包装在本地计算机上运行的Web服务中。
计划是在页面html中放置一个简单的jQuery
ajax调用到运行Web服务的本地计算机的url。该ajax调用包含该顺序的json对象,该对象由Web服务反序列化并打印出来。如果我使用本地主机,则工作正常,但是在生产环境中,我将运行无跨域ajax调用规则的行为。
代理将不起作用,因为在网站上运行的代码无法与运行打印服务的本地Web服务联系。在网上闲逛之后,我发现使用JSONP可能是解决此问题的方法,但我不知道如何使它工作。大多数教程都假定您正在尝试获取一些远程数据,而不仅仅是发布数据。打印Web服务返回void。
如何配置Web服务(asmx)与JSONP一起使用,我的jQuery代码是什么样的?当前看起来像这样:
function printReceipt(data) {
$.ajax({
type: "POST",
url: "http://192.9.200.165/ContestWebService/Service1.asmx/PrintOrderReceiptJson",
data: data,
dataType: "json",
contentType: "application/json; charset=utf-8",
error: function(xhr, msg) { alert(xhr.statusText); }
});
}
JSONP的任何更简单的替代方案,或者我可能没有考虑过的任何其他可能的解决方案,也会有所帮助。
JSONP只是script
向该head
部分添加标签,因此仅限于GET请求。为了将您的asmx
Web服务配置为处理JSONP,您将需要手动处理序列化:
[WebMethod]
[ScriptMethod(UseHttpGet=true, ResponseFormat=ResponseFormat.Json)]
public string Foo()
{
var json = new JavaScriptSerializer().Serialize(new
{
Prop1 = "some property",
});
string jsoncallback = HttpContext.Current.Request["jsoncallback"];
return string.Format("{0}({1})", jsoncallback, json);
}
和客户端:
$.getJSON("http://192.9.200.165/ContestWebService/Service1.asmx/PrintOrderReceiptJson?jsoncallback=?",
function(data) {
alert(data);
});
跨域AJAX调用的另一种替代方法是使用Flash。
问题内容: 我有一个简单的php文件,它可以解码我的json字符串,并与ajax一起传递并标记结果,但是我不能保留变量,为什么? 我尝试使用fireBug进行检查,我可以看到POST请求已正确发送,当调用 php 脚本时,他对我做出了Noooooooob的响应,似乎已设置了任何POST变量。 我想要的就是拥有我的数组=) JSON字符串由生成: 的JavaScript save_categorie
问题内容: 我正在尝试向不受控制的域上的API发出一个简单的JSON获取请求。 我的代码很简单: 但这是跨域请求,因此我在Chrome控制台中收到此错误: 当我尝试添加参数时,控制台将返回此错误: 未捕获到的SyntaxError:意外令牌: 但是,当我检查Chrome中的“网络”标签时,我看到“标题”下的状态代码为200 OK,实际上我可以在“响应”标签中看到完整的响应,但控制台仍显示“意外令牌
问题内容: 我创建了一个简单的MVC Controller操作,该操作需要一些json数据-然后返回true或false。 我从javascript调用它: 只要我在同一个域中,一切都可以正常工作,但是一旦从另一个域中调用它,我就会遇到问题。 在控制器上是一个动作过滤器“ AllowCrossSiteJson”,它将标题“ Access-Control-Allow-Origin”设置为“ *”,从
问题内容: 我正在尝试将JSON对象发布到asp.net Web服务。 我的json看起来像这样: 我正在使用json2.js对我的json对象进行stringyfy。 我正在使用jQuery将其发布到我的Web服务。 我收到以下错误: “无效的JSON原语: 我发现了一堆与此相关的帖子,这似乎是一个非常普遍的问题,但我没有尝试解决此问题。 当萤火虫被发布到服务器时,它看起来像这样: marker
问题内容: 更新:我想传递给服务器 你好,同一个老,同一个老… :) 我有一个名为的表格和一个名为的代码区 我正在使用以下代码来字符串化并在代码区域中显示数据: 我想要的是将此数据发送到JSON文件。我一直在从事这个项目:http : //ridegrab.com/profile_old/,如果您按按钮,您将看到页面的顶部。 我也想使用这段脚本来发送数据: 再次,我想要的是能够将JSON数据发送到
问题内容: 我创建了一个需要发布到jersey的json,这是由grizzly运行的具有REST网络服务的服务器获取需要输出的传入json对象。我正在尝试,但不确定如何正确实施。 我有一个在加载时运行此方法的html文件 问题答案: 要将json发送到服务器,首先必须创建json 这就是构造ajax请求以将json作为post var发送的方式。 json现在将在post var中。