2017-02-09 143 views
2

在这种情况下,服务器端有一些归档文件restApi.jsREST函数。我的REST函数工作正常,我用提示命令测试。从客户端调用服务器端REST功能

在我的客户端有一些存档index.ejs,我想打电话给这个文件。

我restApi.js:服务器端

var Client = require('./lib/node-rest-client').Client; 
var client = new Client(); 


var dataLogin = { 
    data: { "userName":"xxxxx","password":"xxxxxxxxxx","platform":"xxxx" }, 
    headers: { "Content-Type": "application/json" } 
}; 

var numberOrigin = 350; 

client.registerMethod("postMethod", "xxxxxxxxxxxxxxxxxx/services/login", "POST"); 

client.methods.postMethod(dataLogin, function (data, response) { 
    // parsed response body as js object 
    // console.log(data); 
    // raw response 
    if(Buffer.isBuffer(data)){ 
     data = data.toString('utf8'); 
     console.log(data); 
     re = /(sessionID:)([^,}]*)/g; 
     match = re.exec(data); 
     var sessionid = match[2] 
     console.log(sessionid); 
     openRequest(sessionid, numberOrigin); // execute fine 
    } 
}); 

function openRequest(sessionid, numberOrigin){ 
    numberOrigin+=1; 
    var dataRequest = { 
    data: {"sessionID":sessionid,"synchronize":false,"sourceRequest":{"numberOrigin":numberOrigin,"type":"R","description":"Test - DHC","userID":"xxxxxxxxxx","contact":{"name":"Sayuri Mizuguchi","phoneNumber":"xxxxxxxxxx","email":"xxxxxxxxxxxxxxxxxx","department":"IT Bimodal"},"contractID":"1","service":{"code":"504","name":"Deve","category":{"name":"Developers"}}} }, 
    headers: { "Content-Type": "application/json" } 
    }; 
    client.post("xxxxxxxxxxxxxxxxxxxxxxxxx/services/request/create", dataRequest, function (data, response) { 
    // parsed response body as js object 
    // console.log(data); 
    // raw response 
    console.log(data); 
    }); 
} 

我index.ejs:客户端

<html> 
<head> ------------- some codes 
</head> 
<meta ------- /> 
<body> 
<script> 
function send() { 
     $.ajax({ 
      type: "POST", 
      url: "restApi.js", 
      data: '{ sendData: "ok" }', 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function (result) { 
      alert("successful!" + result.d); 
      } 
     }); 
    } 
</script> 
<script src="restApi.js"></script> 
</body>  
</html> 

我已经尝试看看别人的例子,但不工作(阿贾克斯)。 我需要知道如何解决这个问题,如果有其他最佳做法,请让我知道。

在我的控制台(浏览器)显示,如果我调用AJAX功能: enter image description here

SyntaxError: Unexpected token s in JSON at position 2
   at JSON.parse (<anonymous>)
   at parse (C:\xxxxxxxxxxxxxxxxxxxxxxxxx\node_modules\body-parser\lib\types\json.js:88:17)
   at C:\xxxxxxxxxxxxxxxxxxxxxxxxx\node_modules\body-parser\lib\read.js:116:18

如果我点击(错误请求)显示: 实验值:同样的错误比app.js,但是app.js工作正常。

Cannot GET /restApi.js 

在这种情况下该文件restApi.js是该指数后面的文件夹。

文件夹:

实验值:公用文件夹有index.ejs

enter image description here

+0

点,如图所示“但不工作”有什么不行?它如何不起作用?你看到任何错误或异常?你注意到了什么意外的行为? –

+0

我真的很抱歉,我编辑 –

+0

您是否将预期的数据发送给api?它是否期望只有一个属性为“sendData”的对象?我已经发布了基于此的答案。 –

回答

1

你的问题是坏的网址。在情况下,如果你有fiule结构像这样的,你必须在图像 Point your Url like this ../restapi.js

+0

是的,我试过了,但有相同的错误..错误是“{”readyState“:4,”responseText“:”不能POST/restApi .js \ n“,”status“:404,”statusText“:”Not Found“}' –

+0

该文件位于服务器端。但它本该工作,对吧?在这种情况下,我的app.js工作,并与客户端交流... +1的帮助:) –

+0

什么方法正在发送? –

1

基础上,我认为你是通过AJAX发布的数据是不是在正确的语法错误。

更改function send()如下。

function send() { 
    var obj = { "sendData" : "ok" }; 
    $.ajax({ 
     type: "POST", 
     url: "restApi.js", 
     data: obj, 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function (result) { 
     alert("successful!" + result.d); 
     } 
    }); 
} 

这应该可以解决您遇到的错误。

+0

现在是'SyntaxError:意外的令牌s' –

0

您的网址并未指向js/restapi js。 和你在js/restapi js中有什么代码? 如果你的动作页面是应用程序js你必须把它放在url中。 网址: 'JS/restapi.js',

+0

在我的情况下我的档案restApi超出索引文件夹,后面的文件夹,不是一个app.js,我编辑 –

+0

找到第一个你的restapi.js文件在那里并且恰好在ajax url中存在。 –

+0

你在用什么IDE?在崇高autoFileName插件可以帮助你找到文件的位置。 –

1

现在试试这个...

function send() { 
    var obj = { 
    sendData : "ok" 
    }; 
    $.ajax({ 
     type: "POST", 
     url: "Your url", 
     data: obj, 
     dataType: "json", 
     success: function (result) { 
     alert("successful!" + result.d); 
     }, 
     error: function (error) { 
     console.log("error is", error); // let us know what error you wil get. 
     }, 
    }); 
} 
+0

编辑错误是[对象对象]。我会转换JSON,等待 –

+0

你可以显示你有什么restapi.js文件? –

+0

error is' {“readyState”:4,“responseText”:“Can not POST /restApi.js\n","status":404,"statusText":" not found”}' –