移动app项目,试了一下jquery.ajax
1.带域名时:
var result;
$.ajax({
url: "http://192.168.1.101/test/",
async: false,
type: "POST",
data: {arg: '1111'},
success: function (retData) {
result = retData;
}
}); 报跨域错误 如下:
XMLHttpRequest cannot load http://192.168.1.101/test/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8020' is therefore not allowed access.
2. 不带域名时:
var result;
$.ajax({
url: "/test/",
async: false,
type: "POST",
data: {arg: '1111'},
success: function (retData) {
result = retData;
}
}); 报无法访问错误 如下:
POST http://127.0.0.1:8020/test/ 500 (Internal Server Error)
m.ajaxTransport.a.send @ jquery-1.11.2.min.js?v=1.73:4
m.extend.ajax @ jquery-1.11.2.min.js?v=1.73:4
checkUpdate @ initialize.html:40
onclick @ initialize.html:12
如果这个问题不能搞定的话,那 不方便直接从webapp直接拷贝html、js代码过来,有啥解决方案么?
9 个回复
sscjane (作者)
哦,另外要补充一点,关于 问题2: 500 (internal server error)这个情况,我确认了服务器没有问题,因为 服务器没有收到请求。 因此补充一下,各位 不要认为是 服务器没有启动 或者 服务器端异常 之类的问题。
deak100
jquery的ajax方法本来就不能跨域 你不看文档?
Danny - QQ125904483
只能post字符串,不能post对象,get可以,你试试看
亮亮 - 前端工程师
jquery 模式得ajax不能跨域,必须得用jsonp,jsonp智能get不能post。
mui的ajax可以跨域,直接用,不过要注意一下调用的方式和jquery的稍微有点不太一样。
sscjane (作者)
sscjane (作者)
POST带参数问题,downloader下载文件路径问题。。无解了。。
没法子了,各种问题,只能放弃dcloude。。。。
云海帆 - 咨询问题请+Q1395641578
POST 参数可以用JSON转字符串
下载路径问题是啥?
都有解法的,你不愿意研究就只能放弃了
sscjane (作者)
文档上没有说明,还研究个鸟
2015-09-21 16:56
sscjane (作者)
这些问题文档没有,还研究个锤子,你牛你给个答案。。
2015-09-21 16:58
果汁
呵呵,Dcloud只是一个高效率的辅助工具,你遇到问题不想解决就放弃,说明自己底子差,就算换几百个工具一样解决不了你问题。
疯狂的老贾 - 写了17年程序的老汉
JQuery的Ajax本身不支付跨域,但是HTML5时代可以通过后台输出一段代码来解决POST的跨域,不需要使用JSONP。
你可以从百度上仔细阅读一下HTML5 CORS部分的内容。
另外,经过我实际项目中使用,JQuery AJAX的效率可能会不如H5+ 里的AJAX高一些。因为JQuery毕竟仍然在使用浏览器自带的XMLHttpRequest对象。
HTML5做的东西在IOS上效率没有问题,但是在部分安卓机上会有效率问题,就需要通过优化去解决,不能只靠看DCLOUD的示例去COPY代码,要自己仔细阅读HTML5+的部分去解决。