2015年4月21日 星期二

C語言cgi搭配ajax的傳遞,搭配的Server是thttpd

今天要弄一個登入的功能

作法是html去作js檔裡面的Login函式

有問題的地方是在作Login函式時,會再透過ajax去送data給cgi作id與passwd的判斷

javascript的ajax程式碼如下所示:(擷取部分)

/////////////////////////////////////////////////////////////////////////////////
var url_Cgi="./cgi-bin/login.cgi";

var TransData = String.format("username={0}&password={1}",
UserName, Password);

$.ajax({
        url: url_Cgi,
        type: 'GET',
        async: false,
        data: TransData,
        error: function()
{
            AlertNetworkError();  
        },
        success: function(result)
{
if(result == login_success)
{
location = "main.html";
}
else
{
ShowAlert(result) );
}
        }

送過去的data可以知道是ajax的data部分,ajax會呼叫cgi程式,並把要送到cgi的字串帶到login.cgi的後面(例如login.cgi?username=danny&password=0000)

今天遇到的問題就是cgi怎麼把值回傳給ajax的result

原本以為cgi程式那邊的return值會傳給ajax的result,原來我的想法是錯的

cgi如果要想傳值給ajax的result,其實只需在程式裡面作下面的程式碼:

printf("Content-type:text/html\n\n");
printf("login_success");

這樣子作,ajax那邊拿到的result值就會是"login_success"了!


沒有留言:

張貼留言