2017-10-17 62 views
0

我需要这个功能:使用Facebook登录的用户登录。只要用户连接,一些Facebook数据需要使用POST方法发送,所以另一个页面(setSes.php)可以处理数据。如何使用POST方法在jQuery中发送数据?

我已经创建了下面的代码,(添加了一个额外的警报,看看数据是否应该加载,它工作得很好),但不知何故页面setSes.php没有被调用。

function login() { 
     FB.login(function(response) { 
     if (response.status === 'connected') { 
      document.getElementById('status').innerHTML = 'Connected'; 

      FB.api('/me', 'GET', {fields: 'first_name,last_name,name,id,link,gender,locale,picture.width(9999).height(9999)'}, function(response) { 
       var id=response.id; 
       var firstName=response.first_name; 
       var lastName=response.last_name; 
       var picture=response.picture.data.url; 
       alert("Selected ID= "+id); 

       $.ajax({ 
       url:"/setSes.php ", 
       method:"POST", 

       data:{ 
        UID: "id", 
        firstName: "firstName", 
        lastName: "lastName", 
        picture: "picture" 
       } 
       }); 
      }); 
     } else if (response.status === 'not_authorized') { 
      document.getElementById('status').innerHTML = 'Not connected'; 
     } else { 
      document.getElementById('status').innerHTML = 'Not able to login'; 
     } 
     }, {scope: 'email'}); 
    } 

setSes.php

<? 
include_once 'includes/db_connect.php'; 
include_once 'includes/functions.php'; 

sec_session_start(); 

$stmt = $mysqli->prepare("INSERT INTO users(first_name, last_name, oauth_uid, picture 
    ) VALUES (?, ?, ?, ?)"); 
    $stmt->bind_param('ssss', $_POST["firstName"], $_POST["lastName"], $_POST["UID"], $_POST["picture"]); 
    $stmt->execute(); 
    $stmt->close(); 

    echo "I ran"; 

?> 
+1

'型=“POST”'会做的伎俩。删除你的'方法' –

+0

nope,不幸没有工作:( –

+0

然后去与$ .post https://api.jquery.com/jquery.post/ –

回答

1

在Ajax调用你传递字符串,而不是获得的变量。您的意见时,setSes.php文件在同一目录中,所以试试这个...

var id = response.id, 
    fName = response.first_name, 
    lName = response.last_name, 
    pic = response.picture.data.url; 

$.ajax({ 
    method: "POST", 
    url: "setSes.php", 
    data: { UID: id, firstName: fName, lastName: lName, picture: pic }, 
    success: function(response) { 
     alert('SUCCESS: ' + response); 
    }, 
    error: function() { 
     alert('ERROR'); 
    } 
}); 
+0

没有诀窍:( –

+0

是'setSes.php'与jQuery代码文件位于同一目录吗? –

+0

是的,它在同一个目录。 –

相关问题