[英]Making an ajax request with jsonp(no jquery)
I need some help on an assignment that I need to do. 在我需要做的作业上,我需要一些帮助。 Basically the question is a number guessing game. 基本上,问题是一个猜数字游戏。 We're assigned a number in the interval [0,1023] based on our student number and we have 11 guesses to get the right number. 我们已根据学生人数在[0,1023]间隔内分配了一个号码,我们有11个猜测来获得正确的号码。 I know I have to use a binary search to get the number, my only problem is connecting to the server and getting a result. 我知道我必须使用二进制搜索来获取数字,我唯一的问题是连接到服务器并获取结果。
We're given this: 我们得到的是:
A sample request looks as follows: 一个示例请求如下所示:
http://142.132.145.50/A3Server/NumberGuess?snum=1234567&callback=processResult&guess=800
And also given that the request returns the following parameters: 1: A code to determine if your guess is equal, less than or greater than the number 2: Message string 3: Number of guesses made by my application 并考虑到该请求返回以下参数:1:用于确定您的猜测是否等于或小于数字2的代码2:消息字符串3:我的应用程序做出的猜测数目
This is what I've tried so far, just as a test to get the server request working. 到目前为止,这是我尝试过的,只是作为测试以使服务器请求正常工作。 All I get in return is "object HTMLHeadingElement" 我得到的只是“对象HTMLHeadingElement”
window.onload = function() {
newGuess();
}
function newGuess() {
var url = "http://142.132.145.50/A3Server/NumberGuess?snum=3057267&callback=processResult&guess=600";
var newScriptElement = document.createElement("script");
newScriptElement.setAttribute("src", url);
newScriptElement.setAttribute("id", "jsonp");
var oldScriptElement = document.getElementById("jsonp");
var head=document.getElementsByTagName("head")[0];
if (oldScriptElement == null) {
head.appendChild(newScriptElement);
} else {
head.replaceChild(newScriptElement, oldScriptElement);
}
}
function processResult(code,message,guesses) {
var code = document.getElementById("code");
var message = document.getElementById("message");
var guesses = document.getElementById("guesses");
code.innerHTML = code;
message.innerHTML = message;
guesses.innerHTML = guesses;
}
EDIT: Current state of my code. 编辑:我的代码的当前状态。
window.onload = function() {
min = 0;
max = 1023;
mid = 0;
setInterval(newGuess,1000);
};
function newGuess() {
mid = Math.floor((max-min)/2);
var url = "http://142.132.145.50/A3Server/NumberGuess?snum=3057267&callback=processResult&guess="+mid;
var newScriptElement = document.createElement("script");
newScriptElement.setAttribute("src", url);
newScriptElement.setAttribute("id", "jsonp");
var oldScriptElement = document.getElementById("jsonp");
var head=document.getElementsByTagName("head")[0];
if (oldScriptElement == null) {
head.appendChild(newScriptElement);
} else {
head.replaceChild(newScriptElement, oldScriptElement);
}
}
function processResult(codeJ,messageJ,guessesJ) {
code = document.getElementById("code");
message = document.getElementById("message");
guesses = document.getElementById("guesses");
code.innerHTML = codeJ;
message.innerHTML = messageJ;
guesses.innerHTML = guessesJ;
if(codeJ == 0){
return;
}else if(codeJ == -1){
min = mid + 1;
}else if(codeJ == 1){
max = mid -1;
}
console.log(mid);
}
Check your variable-names. 检查您的变量名。 You are overwriting the function-patameters. 您正在覆盖功能参数。
Something like 就像是
code.innerHTML = code;
message.innerHTML = message;
guesses.innerHTML = guesses;
just CAN'T work, you should see the problem yourself... 就是行不通,你应该自己看问题...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.