JavaScript、JSP 和 JSON 不适用于 POST

丽兹

我正在尝试制作一个客户端 - 服务器应用程序,我从客户端通过 JSON 对象向服务器发送请求以进行注册。问题是我应该得到另一个带有“OK”字段的 JSON(实际上正在发送)但由于某种原因,客户端继续使用该.fail函数而不是函数.done(对不起,如果某些使用的术语不是很准确,我我是新手)。

所以我将这是我的代码,您可以检查是否有任何错误导致此问题:

客户端JS:

define(['ojs/ojcore', 'knockout', 'jquery', 'appController', 'jquery', 'ojs/ojknockout', 'ojs/ojinputtext'],
 function(oj, ko, $, app) {

    function RegistrarseViewModel() {
        var self = this;
        this.email = ko.observable();
        this.pwd1 = ko.observable();
        this.pwd2 = ko.observable();
        this.registrar = function(){
            alert("Se ha mandado el registro");
            var p = {tipo:"Registrarse",email: this.email(), pwd1:this.pwd1(), pwd2:this.pwd2()};
            $.ajax({
                type:"POST",
                url:"http://localhost:8080/ServidorWeb/Registrarse.jsp",
                data: "p=" + JSON.stringify(p)
            }).done(function(data, textStatus, jqXHR){
                alert("Comprobando tipo");
                if (data.tipo == "OK"){
                    //window.location="index.html?root=juegos"
                    sessionStorage.jugador=self.email();
                    app.router.go("login");
                    alert("Registro correcto");
                }else
                    alert(respuesta.texto)
            }).fail(function()  {
                alert("Sorry. Server unavailable. lol ");
            });
        }

        this.cancelar = function(){
            app.router.go("login");
        }
    }
    return new RegistrarseViewModel();
  }
);

服务器 JSP:

<%@ page language="java" contentType="application/json ; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import= "org.json.*,dominio.Manager"%>
<%
String p = request.getParameter("p");
JSONObject resultado=new JSONObject();
try{

 JSONObject jso= new JSONObject(p);
 if(!jso.getString("tipo").equals("Registrarse")){
  resultado.put("tipo","NOK");
  resultado.put("texto","Mensaje inesperado");
 }else{
  String email=jso.getString("email");
  String pwd1=jso.getString("pwd1");
  String pwd2=jso.getString("pwd2");
  Manager.get().registrarse(email,pwd1,pwd2);
  resultado.put("tipo","OK");
  resultado.put("texto","Te has registrado con el email " + email);
 }
}
catch(Exception e){
 resultado.put("tipo","NOK");
 resultado.put("texto","Mensaje Inesperadoo");
}
%>

<%=resultado.toString()%>

执行后Manager.get().registrarse(email,pwd1,pwd2);(这是注册到 MongoDB 的逻辑)它只是继续该resultado.put("tipo","OK");行,这意味着问题不在那里。

另外,如果我http://localhost:8080/ServidorWeb/Registrarse.jsp?p=%7Btipo:%22Registrarse%22,email:%2233%22,pwd1:%2220%22,pwd2:%2220%22%7D从像 Google Chrome 这样的浏览器发送请求,它会打印出这个:{"texto":"Te has registrado con el email 33","tipo":"OK"}但是从真正的客户端它不会进入该.done功能,我知道为什么。

我真的希望你能帮助我。

提前致谢。

编辑 1:添加了来自浏览器控制台 IMAGE的服务器响应

丽兹

好的,我终于解决了这个问题。

我不得不在 .jsp 的开头添加这条线,这是 TomCat 的一个问题,它有 2 台机器,如果没有这条线,它似乎由于安全原因不允许不同机器之间的通信。

response.setHeader("Access-Control-Allow-Origin", "*");

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Javascript forEach不适用于json

来自分类Dev

POST 不适用于 Node.JS 和 Express

来自分类Dev

模型资料夹不适用于JSON POST

来自分类Dev

POST请求不适用于POSTMAN上的JSON

来自分类Dev

$ _POST和$ _GET不适用于var_dump,但适用于日志请求

来自分类Dev

AJAX 和 JSON 不适用于 jQuery

来自分类Dev

javascript和css不适用于jsp基于ajax的动态填充标签

来自分类Dev

jQuery Javascript仅适用于chrome和firefox,不适用于IE

来自分类Dev

进度栏不适用于javascript和bootstrap

来自分类Dev

CSS,Bootstrap和Javascript不适用于Django

来自分类Dev

悬停不适用于Javascript,CSS和HTML

来自分类Dev

JavaScript + SVG 不适用于 Tor 和 IE

来自分类Dev

拆分不适用于JavaScript中的json_encode

来自分类Dev

Rest API post 请求不适用于 Mac 和 Ubuntu 的 Postman,但仅适用于 Windows

来自分类Dev

$ _POST变量不适用于$ _FILES和multipart / form-data

来自分类Dev

GET和POST请求不适用于ip地址(内部服务器错误)

来自分类Dev

PHP 7表单不适用于enctype =“ multipart / form-data”和method =“ post”

来自分类Dev

JavaScript UTC 到本地时间的转换不适用于 IE 和 Firefox,但适用于 Chrome

来自分类Dev

HTML 和 JavaScript 代码适用于在线 HTML 编辑器,但不适用于本地机器

来自分类Dev

POST请求中的JSON可在HttpRequester中使用,但不适用于python Requests

来自分类Dev

重定向不适用于thymeleaf和JSP View解析器

来自分类Dev

使用“键”和“值”属性反序列化JSON映射不适用于Jackson

来自分类Dev

Struts2操作不适用于JSON和分派器的结果类型

来自分类Dev

AWS Lambda和JSON.stringify \\ n-> \ n-不适用于Slack API

来自分类Dev

来自Matplotlib和熊猫的图不适用于数据json文件,因为ValueError

来自分类Dev

饼图不适用于使用AngularJS和nvd3的Json Data

来自分类Dev

Ajax 成功函数不适用于返回的 json 数据和状态 200/304

来自分类Dev

static.json 不适用于 ReactJS 路由和 Heroku

来自分类Dev

对内部html的document.getElementById调用适用于$ _POST和$ _GET变量,但不适用于普通的php变量

Related 相关文章

  1. 1

    Javascript forEach不适用于json

  2. 2

    POST 不适用于 Node.JS 和 Express

  3. 3

    模型资料夹不适用于JSON POST

  4. 4

    POST请求不适用于POSTMAN上的JSON

  5. 5

    $ _POST和$ _GET不适用于var_dump,但适用于日志请求

  6. 6

    AJAX 和 JSON 不适用于 jQuery

  7. 7

    javascript和css不适用于jsp基于ajax的动态填充标签

  8. 8

    jQuery Javascript仅适用于chrome和firefox,不适用于IE

  9. 9

    进度栏不适用于javascript和bootstrap

  10. 10

    CSS,Bootstrap和Javascript不适用于Django

  11. 11

    悬停不适用于Javascript,CSS和HTML

  12. 12

    JavaScript + SVG 不适用于 Tor 和 IE

  13. 13

    拆分不适用于JavaScript中的json_encode

  14. 14

    Rest API post 请求不适用于 Mac 和 Ubuntu 的 Postman,但仅适用于 Windows

  15. 15

    $ _POST变量不适用于$ _FILES和multipart / form-data

  16. 16

    GET和POST请求不适用于ip地址(内部服务器错误)

  17. 17

    PHP 7表单不适用于enctype =“ multipart / form-data”和method =“ post”

  18. 18

    JavaScript UTC 到本地时间的转换不适用于 IE 和 Firefox,但适用于 Chrome

  19. 19

    HTML 和 JavaScript 代码适用于在线 HTML 编辑器,但不适用于本地机器

  20. 20

    POST请求中的JSON可在HttpRequester中使用,但不适用于python Requests

  21. 21

    重定向不适用于thymeleaf和JSP View解析器

  22. 22

    使用“键”和“值”属性反序列化JSON映射不适用于Jackson

  23. 23

    Struts2操作不适用于JSON和分派器的结果类型

  24. 24

    AWS Lambda和JSON.stringify \\ n-> \ n-不适用于Slack API

  25. 25

    来自Matplotlib和熊猫的图不适用于数据json文件,因为ValueError

  26. 26

    饼图不适用于使用AngularJS和nvd3的Json Data

  27. 27

    Ajax 成功函数不适用于返回的 json 数据和状态 200/304

  28. 28

    static.json 不适用于 ReactJS 路由和 Heroku

  29. 29

    对内部html的document.getElementById调用适用于$ _POST和$ _GET变量,但不适用于普通的php变量

热门标签

归档