javascript - 使用 jsonp 发出 ajax 请求(无 jquery)

标签 javascript ajax jsonp

我需要一些帮助来完成我需要完成的作业。基本上,这个问题是一个猜数字游戏。根据我们的学生编号,我们在 [0,1023] 区间内分配了一个数字,并且我们有 11 次猜测才能得到正确的数字。我知道我必须使用二分搜索来获取数字,我唯一的问题是连接到服务器并获取结果。

我们得到了这个:

示例请求如下所示:

http://142.132.145.50/A3Server/NumberGuess?snum=1234567&callback=processResult&guess=800

并且还考虑到请求返回以下参数: 1:确定您的猜测是否等于、小于或大于数字的代码 2:消息字符串 3:我的应用程序进行的猜测次数

这是我到目前为止所尝试的,只是作为让服务器请求正常工作的测试。我得到的返回是“object 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;
}

编辑:我的代码的当前状态。

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);
}

最佳答案

检查您的变量名称。您正在覆盖函数参数。

类似的东西

code.innerHTML = code;
message.innerHTML = message;
guesses.innerHTML = guesses;

只是无法工作,你应该自己看看问题所在......

关于javascript - 使用 jsonp 发出 ajax 请求(无 jquery),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26792484/

相关文章:

java - 如何使用 JSON/JQUery 向外部网站提交数据并获取结果并显示在我的 JSP 页面中

发布 jQuery 时 JavaScript 数组被编码

javascript - 在 visualforce 中从 javascript 调用 Controller 方法

php - 使用 XHR 取消 PHP 脚本?

javascript - 如何通过用户 ID 从 flickr 获取集合列表?

javascript - 理解以下javascript代码

javascript - 更改 p 标签中单行的颜色,然后将其改回

javascript - 什么是JSON-P,您如何发音?

angularjs - Angular jsonp数据打印

javascript - Django + Jquery + Ajax + D3 不起作用