我正在使用jQueryMobile。我想发一个http请求,但我不需要答案,因为我非常知道请求会成功。问题:请求针对外部服务器,因此我只能使用JSONP。但是服务器不支持它,只返回纯文本或有效的xml(我可以使用请求URL更改它)。 如何在不出错的情况下提出此请求?
在ajax中使用jsonp时,我收到错误,表示存在语法错误。 仅将请求作为普通的ajax / text / xml请求发送时,服务器根本不会被联系。我知道这一点,因为我正在联系短信网关并且没有收到短信。
我的解决方法是当前插入一个新的iframe,其中src为该url,样式为display:none;在Firefox中运行良好,但我怀疑这是(唯一的)解决方案。
你有什么解决方案?
答案 0 :(得分:2)
我认为你已经实现了最佳答案。让我们来看看约束:
这是对您无法控制的服务器的跨源请求,因此您无法使用检查同源的各种HTML5,Flash或Java API。
插入一些将加载远程资源的DOM元素。
您已确定<script>
不会这样做,因为内容类型错误。
同样,您无法使用<img>
,<embed>
或<object>
,即使这些选择有效,这些也是邪恶的骇客选择。
如果您想从浏览器发出请求,我认为<iframe>
是唯一的选择。
您的另一个选择是在您自己的服务器上实现代理远程API的API。然后您可以使用XHR发出请求,如果需要,您可以在客户端上执行完整的错误检查。