日期:2014-05-17  浏览次数:20721 次

jquery ajax 访问跨域的asp页面返回登录成功或者失败 (post/get?)
我是用ajax jsonp方式跨域访问。

如果是GET提交这里 永远提示 “登录成功”。如果 POST提交,第一次访问是“登录成功”,再次访问会提示“您已经登录了”(不过要用POST,会提示“该页面正在访问其控制范围之外的信息。。。”)。
这个是什么原因,请大侠赐教。。跪谢


asp 页面如下 (1.asp)

<%@  language="VBScript" %>
<%
Response.Expires = -1
Response.CacheControl = "no-cache"
Response.codepage=65001

jsonString=vbNullString
Josnp = Request.QueryString("callbackparam")
jsonString=Josnp+"({""Result"":""0"",""Msg"":""非法登陆""})" '初始化变量为 为false


if session("UserSerial")<>vbNullString then '已经登录 无需再次登录 true
    jsonString = Josnp+"({""Result"":""1"",""Msg"":""您已经登录了""})"
    Response.Write jsonString
    Response.End
end if

UserName=Request.QueryString("UserName") '获取用户名


set conn=Server.CreateObject("ADODB.Connection")
conn.Open Application("strDBConnectionString")

tString=vbNullString
tString=tString & "select top 1 * from UserInfo where LoginName='" & replace(UserName,"'","''") & "'"

set rs=server.CreateObject("ADODB.RecordSet")
rs.Open tString,conn,1,1

if rs.EOF then
Response.End
else
session("UserId")=rs("UserId")
end if

rs.Close
set rs=nothing

conn.Close
set conn=nothing

if session("UserSerial")<>vbNullString then '登录成功 true
    jsonString = Josnp+"({""Result"":""1"",""Msg"":""登录成功""})"
Response.Write jsonString
    Response.End
end if
%>

jquery 方法

function LoginJump() {
    try {
        $.ajax({
            type: "post",              url: "http://www.baidu.com/1.asp&callbackparam=?",
            dataType: "jsonp",
            success: function (data) {
                if (data.Result = 1) {
                     alert(data.Msg); //如果是GET提交这里 永远提示 “登录成功”。如果 POST提交,第一次访问是“登录成功”,再次访问会提示“您已经登录了”(不过要用POST,会提示“该页面正在访问其控制范围之外的信息。。。”)
                    location.href = "http://www.baidu.com/2.asp"
                } else {
                    alert("错误");
                }
                //alert(data.Result);
            }, error: function () { }
       &nb