当前位置:编程学习 > C#/ASP.NET >>

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 () { }
        });
    } catch (e) {
    alert(e.message);
    }
}





jquery ajax get post --------------------编程问答-------------------- 坐等大侠 --------------------编程问答-------------------- get + jsonp 支持跨域,

但是 post提交,根本就不支持跨域。

提示“该页面正在访问其控制范围之外的信息。。。”

这个就是证明!
--------------------编程问答-------------------- 更正:

ajax 里面的post提交,不支持跨域。


<form > 表单 的post提交,是支持跨域的。 --------------------编程问答-------------------- 新问题又出现,在火狐和谷歌浏览器下get正常,只有在IE下 不正常 。郁闷 --------------------编程问答--------------------
在IE下面 把这个设置调整到最低 就可以访问了,什么原因?总不能把所有用户的IE都调整吧



--------------------编程问答-------------------- 别沉啊 --------------------编程问答-------------------- --------------------编程问答-------------------- set conn=Server.CreateObject("ADODB.Connection")


你觉得有哪个用户会这样傻呢?我可以告诉你,这种程序可以轻易地访问你的电脑上任何密码文件,可以随便注入病毒。 --------------------编程问答--------------------
引用 4 楼 terry2018 的回复:
新问题又出现,在火狐和谷歌浏览器下get正常,只有在IE下 不正常 。郁闷


你认为FireFox和Chrome不经你的胡乱配置,就允许一个网页随便调用你客户端的任意COM组件?

火狐和谷歌没有这样的。
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,