在尝试让iOS 5上的Safari通过jQuery加载AJAX请求时,调试控制台会加载错误
Javascript: Error on Line 1
XMLHttpRequest cannot load http://<MYSERVERADDRESS>/WebMethods.asmx/Method. Cannot make any requests from null
我已经尝试了谷歌的答案,以及搜索SO,但我无法找到解决方案。
此问题仅出现在iOS上。
非常感谢任何帮助。
修改
以下是所要求的代码。
jQuery(function ($) {
$.ajax({
url: "/Peak.asmx/IsValidParticipant",
data: { LanID: $("#LoginPageUsername").val(), Password: $("#loginPagePassword").val() },
type: "POST",
success: function (data) {
if (data.response.result == "Success") {
window.location = "/RSVP.aspx";
} else if (data.response.result == "Failure") {
$(".errorsSummaryBox").show().find("li").hide();
if (data.response.data.Reason == "Credentials") {
$("#PortalAuthError").slideDown();
} else if (data.response.data.Reason == "Participant") {
window.location = "/NoInvite.aspx";
}
}
},
dataType: "json"
});
});
答案 0 :(得分:9)
我遇到了同样的问题,但我找到了解决方案!
您必须重新启动Safari进程。不仅退出主窗口,而且:
奇怪但真实。
答案 1 :(得分:3)
致TFerrell:
RSVP.aspx响应是否包含PDF?如果是,那么尝试将我的建议用于下面的Parched。
To Parched:
您尝试打开的PDF将破坏新Safari Mobile 5的默认PDF查看器。快速解决方案是弹出PDF的新窗口。这将打破新的弹出页面而不是父页面。另一种解决方案是以格式良好的PDF格式生成(如果您)PDF。
答案 2 :(得分:1)
如果这没有帮助/纠正,请删除答案...我没有足够的声誉来添加评论,这只是猜测,但我今天遇到了类似的问题:
我试图获得一个运行jquerymobile的东西,其中我有一个ajax请求。要调试我切换到桌面chrome,它总是会在控制台中给我一个错误: “XMLHttpRequest无法加载[url] .Access-Control-Allow-Origin不允许使用Origin。”
原因是因为我从某个不同域的file:///some.html加载了ajax。因此,这是一个跨站点问题。
我用Google搜索并找到了file:// sites(例如,如果您在移动设备上使用手机屏幕制作的网站)确实原点为null并且该问题似乎很难。
无论如何,我相信这可能会对你有所帮助。您可能需要将服务器配置为允许跨域请求。
有关详细信息,请参阅此问题 XmlHttpRequest error: Origin null is not allowed by Access-Control-Allow-Origin
请参阅本指南以获取更多帮助 http://usejquery.com/posts/the-jquery-cross-domain-ajax-guide
我个人没有尝试深入解决这个问题,因为它适用于我的android模拟器...... (我试图在jquery-ajax上设置“crossDomain”和“xhrFields”属性无效)
欢呼声