研究mui的时候测试ajax,发现默认跨域访问是被拒绝的。但提示比较模糊,就在web服务端和客户端都加了有关Access-Control-Allow-Origin和Access-Control-Allow-Headers的配置,在几个浏览器中测试通过。网上有说需要配置客户端、配置浏览器的,也有说只需要配置服务端即可。经过测试得出结论:
配置服务端就可以了。我是用asp.net做的webserver服务,在web.config文件中的节点内加入配置项:
服务端ashx源码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace WebApplication3
{
///
/// login 的摘要说明
///
public class login : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain;charset=utf-8";
//context.Response.Headers.Add("Access-Control-Allow-Origin","*");
//context.Response.Headers.Add("Access-Control-Allow-Headers","X-Requested-With");
context.Response.Headers.Add("Cache-Control","no-cache");
string userid = string.Empty;
if (context.Request.Params["userid"] != null)
userid = context.Request.Params["userid"].ToString();
string password = string.Empty;
if (context.Request.Params["password"] != null)
password = context.Request.Params["password"].ToString();
string result = string.Empty;
if (userid.Equals(string.Empty) || password.Equals(string.Empty) || !userid.Equals(password))
{
result = "{\"result\":\"error\",\"userid\":\"\",\"roleid\":\"\"}";
}
else
{
result = "{\"result\":\"ok\",\"userid\":\""+ userid +"\",\"roleid\":\"1001\"}";
}
context.Response.Write(result);
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
客户端调用界面源码:
按钮
mui.init();
mui.ready(function(){
var btnLogin = document.getElementById("btnLogin");
btnLogin.οnclick=function(){
var url = "http://localhost:1664/login.ashx";
mui.ajax(url,{
data:{
userid:1,
password:1
},
type:"get",
dataType:"json",
success: function(data){
mui.alert("ok");
},
error:function(){
mui.alert("error");
}
});
};
});
这里客户端使用hbuilder编写的,利用其代码块快捷键,可以瞬间构造出一个漂亮的界面,非常赞的开发工具。这里已经将调试ajax的障碍清除了,后续继续研究使用html5开发app的相关内容。
总结
以上是编程之家为你收集整理的mui.ajax跨域访问全部内容,希望文章能够帮你解决mui.ajax跨域访问所遇到的程序开发问题。
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250