不使用答案的外部HTTP请求

时间:2012-11-11 16:22:43

标签: javascript jquery html ajax http

我正在使用jQueryMobile。我想发一个http请求,但我不需要答案,因为我非常知道请求会成功。问题:请求针对外部服务器,因此我只能使用JSONP。但是服务器不支持它,只返回纯文本或有效的xml(我可以使用请求URL更改它)。 如何在不出错的情况下提出此请求?

在ajax中使用jsonp时,我收到错误,表示存在语法错误。 仅将请求作为普通的ajax / text / xml请求发送时,服务器根本不会被联系。我知道这一点,因为我正在联系短信网关并且没有收到短信。

我的解决方法是当前插入一个新的iframe,其中src为该url,样式为display:none;在Firefox中运行良好,但我怀疑这是(唯一的)解决方案。

你有什么解决方案?

1 个答案:

答案 0 :(得分:2)

我认为你已经实现了最佳答案。让我们来看看约束:

  1. 这是对您无法控制的服务器的跨源请求,因此您无法使用检查同源的各种HTML5,Flash或Java API。

  2. 插入一些将加载远程资源的DOM元素。

  3. 您已确定<script>不会这样做,因为内容类型错误。

  4. 同样,您无法使用<img><embed><object>,即使这些选择有效,这些也是邪恶的骇客选择。

  5. 如果您想从浏览器发出请求,我认为<iframe>是唯一的选择。

    您的另一个选择是在您自己的服务器上实现代理远程API的API。然后您可以使用XHR发出请求,如果需要,您可以在客户端上执行完整的错误检查。