PHP会话无法在Aurelia中运行

时间:2016-04-15 11:27:42

标签: javascript php ajax aurelia

我使用Aurelia和PHP作为后端。以下是我对其模型的看法:

home.html的

struct

home.js

<template>
    <require from="datepicker.js"></require>
    <form submit.delegate="submit()">
        <input value.bind="name"></input>
        <input value.bind="age"></input>
        <button type="submit" name="submit">Submit
        </button>
    </form>
</template>

这是PHP脚本:

ses.php

import {inject} from 'aurelia-framework';
import {HttpClient} from 'aurelia-fetch-client';
import 'fetch';

@inject(HttpClient)
export class Home {
  name;
  age;

  constructor(http) {
    this.http = http;
  }

  submit() {
    this.jsonobj = {
      'name': this.name,
      'age': this.age
    };

    if (this.jsonobj.name && this.jsonobj.age) {
      this.http.fetch('dist/components/ses.php', {
        method: 'post',
        body: JSON.stringify(this.jsonobj)
      })
        .then(response =>  response.json())
          .then(data => 
          { 
            console.log(data);
          });
    }
  }
}

我希望在第一次调用脚本后,$ _SESSION [&#39;用户名&#39;]将被设置为&#39; kil&#39;。所以在下一个ajax帖子上!isset($ _ SESSION [&#39;用户名&#39;]不会评估为true但它确实意味着PHP会话无法正常工作。

1 个答案:

答案 0 :(得分:4)

默认情况下,fetch(构建aurelia-fetch-client的Web标准)不会发送cookie。您需要在请求init对象中使用credentials: 'include'

用于获取的两个很棒的资源:

代码:

this.http.fetch('dist/components/ses.php', {
    credentials: 'include', // <-------------------------------------
    method: 'post',
    body: JSON.stringify(this.jsonobj)
  })