起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2341|回复: 4

[结贴] 求助:wex5的ajax访问总是返回JUSTEP230109,而浏览器直接访问正常

[复制链接]

6

主题

13

帖子

77

积分

初级会员

Rank: 2

积分
77
QQ
发表于 2017-2-25 16:56:14 | 显示全部楼层 |阅读模式
下面这句,在chrome浏览器上直接执行,是有返回值的
https://aip.baidubce.com/rpc/2.0 ... 0332.282335-8574074
返回:
{"error_msg":"Access token expired","error_code":111}

而在wex5里,在button click事件里,总是返回JUSTEP230109.
               
              $.ajax({
                  "type" : "post",
                  "async" : false,
                  "dataType" : "json",
                  "url" : "https://aip.baidubce.com/rpc/2.0/nlp/v1/wordseg",
                  "data" : {
                          "access_token" : "24.f9ba9c5241b67688bb4adbed8bc91dec.2592000.1485570332.282335-8574074",                        
                  },
                  "complete" : function(xhr) {
                      if (xhr.readyState == 4 && xhr.status == 200) {
                          //alert("成功!"); //成功就不提示了
                      } else {
                          alert("发送失败!");
                      }
                  },
                  "error": function(){ //失败
                          alert('Error loading document');
                          },  
                  "success": function(msg){ //成功
                                   alert( "返回数据: " + msg );                                    
                                  }  
                  
              });               


奇怪的是,我写的另外一个例子,ajax访问图灵机器人api的就没有这个现象:
              $.ajax({
                  "type" : "post",
                  "async" : false,
                  "dataType" : "json",
                  "url" : "http://www.tuling123.com/openapi/api",
                  "data" : {
                      "key" : "xxxxxxxxxxxxxxxxxxxxxxxxxxx",
                      "info" : "",
                     // "loc" : "",               
                      "userid" : "123456",            
                  },
                  "complete" : function(xhr) {
                      if (xhr.readyState == 4 && xhr.status == 200) {
                          //alert("成功!"); //成功就不提示了
                      } else {
                          alert("发送失败!");
                      }
                  },
                  "error": function(){ //失败
                          alert('Error loading document');
                          },  
                  "success": function(msg){ //成功
                                  // alert( "返回数据: " + msg );                                      
                                  }  
                  
              });               

19

主题

98

帖子

282

积分

中级会员

Rank: 3Rank: 3

积分
282
QQ
发表于 2017-2-26 15:11:04 | 显示全部楼层
跨越用 "cordova!plugin.http.request"
回复 支持 反对

使用道具 举报

发表于 2017-2-27 11:35:56 | 显示全部楼层
你请求的是https 协议!并且还存在跨域
跨域的介绍文字和解决方法请参考:http://docs.wex5.com/ajax-cross-domain/

主要是你的服务器是否支持跨域呢??
如果不支持,还可以通过请求后端的baasServer ,在服务器访问这个请求,再返回给前端!就不存在跨域的问题了!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

6

主题

13

帖子

77

积分

初级会员

Rank: 2

积分
77
QQ
 楼主| 发表于 2017-2-27 18:39:17 | 显示全部楼层
liangyongfei 发表于 2017-2-27 11:35
你请求的是https 协议!并且还存在跨域
跨域的介绍文字和解决方法请参考:http://docs.wex5.com/ajax-cross ...

根据你的建议改用baasServer: 返回这个错误是什么原因呢,是java代码有问题么?
getToken
2017-02-27 18:36:12 Cookie rejected [BAIDUID="76B81E6B30E3BBC2117677A2A91C1785:FG=1", version:1, domain:.baidu.com, path:/, expiry:Fri Jan 01 07:55:55 CST 2038] Illegal domain attribute ".baidu.com". Domain of origin: "aip.baidubce.com"
response.getStatusLine().getStatusCode():200
{"error_msg":"Invalid parameter","error_code":100}

//////////////////////////////////////////////////////////////////////////////////
           public static JSONObject getToken(JSONObject params, ActionContext context) throws SQLException, NamingException {
                  
                        System.out.println("getToken");
                        
                       
                HttpClient httpclient = HttpClients.createDefault();

                try
                {
                    URIBuilder builder = new URIBuilder("https://aip.baidubce.com/rpc/2.0/nlp/v1/wordseg");

                    URI uri = builder.build();
                    HttpPost request = new HttpPost(uri);
                    request.setHeader("Content-Type", "application/json");


                    // Request body
                    String body = "{\"access_token\""+":"+"\"24.f9ba9c5241b67688bb4adbed8bc91dec.2592000.1485570332.282335-8574074\"}";
                    StringEntity reqEntity = new StringEntity(body);
                    request.setEntity(reqEntity);

                    HttpResponse response = httpclient.execute(request);
                    HttpEntity entity = response.getEntity();
                    System.out.println("response.getStatusLine().getStatusCode():"+response.getStatusLine().getStatusCode());
                    if (entity != null)
                    {
                        System.out.println(EntityUtils.toString(entity));
                    }
                }
                catch (Exception e)
                {
                    System.out.println(e.getMessage());
                }                        
                return null;
                        
        }        
回复 支持 反对

使用道具 举报

6

主题

13

帖子

77

积分

初级会员

Rank: 2

积分
77
QQ
 楼主| 发表于 2017-2-27 22:51:50 | 显示全部楼层
黑夜2016 发表于 2017-2-27 18:39
根据你的建议改用baasServer: 返回这个错误是什么原因呢,是java代码有问题么?
getToken
2017-02-27 18:36 ...

找到原因了,原来是参数格式不对
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-4-19 14:37 , Processed in 0.094757 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表