【发布时间】:2015-12-02 04:08:12
【问题描述】:
我在一个希望存储一些定制数据的网站(称为 websiteA)上工作。
因此,我们意识到最好的方法是拥有另一个可以处理此问题的网站 (websiteB)。因此,当用户访问 websiteA 时,它会调用 websiteB 并传递一些信息。
我以前使用的代码(我从这篇帖子How to get json from MVC4 C# with no javascript and no Ajax收到的)是
using (var client = new HttpClient())
{
var responseString = client.GetStringAsync("http://www.example.com/recepticle.aspx?withQueryString=true"); //I don't actually use the responseString
}
关键是,当我问这个问题时,留下了一条评论(现已删除),说明我应该改用 WebApi。所以我做到了……这就是问题所在。
我创建了 Web Api 2 项目,并使用 Ajax 发布,它可以在我的本地主机上运行。我现在已经部署到我的测试环境并意识到由于跨域来源问题我无法实现我想要的。
进一步阅读表明我不能使用json,但必须使用jsonp 但是,jsonp 仅适用于get,而我需要post (How to use type: "POST" in jsonp ajax call )。
我想我可以使用 'get' 并忽略响应,但这感觉就像一个黑客......
很抱歉问了两个问题,但我认为它们非常相关。
问题 1 是:如果 jsonp 需要回调,它实际上是在使用 get 但 get 是从目标机器(websiteB)调用的吗?那么,jsonp 不是从网站 A 发布到网站 B,实际上是否意味着网站 A 将回调传递给网站 B,而网站 B 实际上调用回调(本质上意味着网站 B 正在调用网站 A)?
问题 2(主要问题):如何使用 javascript/ajax/jquery 从网站 A 向网站 B 发布信息。还是我必须在 websiteB 服务器上启用CORS,然后使用 ajax 的 post 和 json?
【问题讨论】:
-
嗨,我认为这是一个有趣的问题。有问题的框架(MVC-4-C#?)对我来说很模糊,但如果您对通用答案感兴趣,我愿意做一些研究并发布我的发现。
-
是的,说实话,它是 ASP.NET-MVC 的事实可能无关紧要,因为帖子是在客户端完成的。
标签: asp.net-web-api2