2017-06-03 62 views
0

我正在一個網站上工作,我正嘗試使用ajax連接JavaScript和php。閱讀Ajax響應時遇到問題。閱讀ajax帖子回覆時遇到問題

我有一個PHP腳本,它具有以下代碼:

<?php 
echo "1"; 

而且用JavaScript編寫ECMA 6的功能,它具有以下代碼:當我調試

loginUser(username, password) { 
     return new Promise((resolve, reject) => { 

      var request = require('ajax-request'); 
      request.post(
       { 
        url: 'http://swiftservice.psoftwarestudio.com/Admin.php', 
        data: { 
         username: username, 
         password: password 
        }, 
        headers: {} 
       } 
       , (data) => { 
        resolve(data); 
       } 
      ); 
     }); 
    } 

,數據始終爲空。我在網絡編程方面非常新穎,尤其是惠普ajax。 我希望有人能指出我的錯誤,謝謝。

+0

你看過瀏覽器的開發者工具嗎? – Anton

+0

@Anton當我將數據放入監視中並且在我呼叫解析時停止在線上時,沒有錯誤,它表示數據爲空,這就是全部。如果這是問題 –

+0

請發送標題,因爲這是一個很好的習慣,例如:headers:{'Accept':'application/json','Content-Type':'application/json',}。並嘗試從服務器端返回json。嘗試使用chrome中的Source選項卡來調試您的代碼 – DASH

回答

2

我看了ajax-request模塊的文檔和注意到回調需要3個參數:function(err, res, body) {

也許所需的數據是在第三?

+0

它是,謝謝,解決了它。 –

+0

我只用一個參數的原因是我看到的帖子 –

0

您需要解析data你從你的AJAX回叫成JSON對象,你得到的是它的字符串表示:

loginUser(username, password) { 
     return new Promise((resolve, reject) => { 

      var request = require('ajax-request'); 
      request.post(
       { 
        url: 'http://swiftservice.psoftwarestudio.com/Admin.php', 
        data: { 
         username: username, 
         password: password 
        }, 
        headers: {} 
       } 
       , (data) => { 
        resolve(JSON.parse(data)); 
       } 
      ); 
     }); 
    } 
+1

如果他得到null這不是問題:) –

+0

@MarkoMackic剛剛意識到它是節點代碼...>。< – Luca

+0

用戶名和密碼在數據中,我是否缺少「」那裏? –