我已经在论坛上搜索了一段时间,虽然我找到了有用信息的帖子,但我无法让其中任何一个工作。这是我想要的行为的摘要。
我有一个带有 jquery 的 HTML 页面,用于从文件中读取我的用户名/密码以登录服务器。我的页面有一个带有 method="post" 的表单,我被告知要在提交表单之前登录到此服务器,我可以在我的部分中使用它。
<script>
var xmlhttp;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
}
else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
var url = "http://sasserver.com:8080/SASStoredProcess/do?_username=USERl&_password=PWD";
xmlhttp.open("GET", url, false);
xmlhttp.send();
if (xmlhttp.status != 200) {
console.log("Unable to retrieve: " + url);
alert("Open error: " + url);
}
</script>
这有效,但它没有读入我的用户名和密码。我目前已经设置了 jquery 来做到这一点。
get('http://server.com/pw.dat',function(result){
var perLine=result.split(':');
$('input[id=usernm]').val(perLine[0]);
$('input[id=pass]').val(perLine[1]);
var u = $("#usernm").val();
var p = $("#pass").val();
});
我的问题是如何用 jquery 逻辑完成替换 XMLHttpRequest 逻辑,以便我可以在 $(document).ready 上提交此表单。
我能够创建一个包含正确 url 的变量,但 .get 方法不起作用。我想同步执行此操作(至少 XMLHttpRequest 是这样工作的)。
我看到我可以使用 $.ajaxSetup({async:false}); 在使用 .get 之前允许这样做,但它不起作用。
请帮助我确定我的代码是否只是乱序或手头是否有更大的问题。我正在尝试使用 (document).ready 来执行此操作,因为 HTML 页面也有一个要提交的表单(method=post)。
我当前的代码块:
<script>
$(document).ready(function(){
$.ajaxSetup({async:false});
$.get('http://server.com/pw.dat',function(result){
var perLine=result.split(':');
$('input[id=usernm]').val(perLine[0]);
$('input[id=pass]').val(perLine[1]);
// var u = $("#usernm").val();
// var p = $("#pass").val();
});
var u = $("#usernm").val();
var p = $("#pass").val();
var url="http://sasserver.com:8080/SASStoredProcess/do?_username=" + u + "&_password=" + p;
alert(url); //check to make sure we have the url
$.get(url);
$.ajaxSetup({async:true});
});
</script>
谢谢。