如何使用Ember Ajax从Node JS Express传入数据

How to pass in data from Node JS Express with Ember-Ajax?

本文关键字:Express 数据 JS Node 何使用 Ember Ajax      更新时间:2023-11-23

我正在使用NodeJS Express API开发Ember网站。我正在使用member-ajax连接到API。

编辑:

Ember版本为1.13

Ember数据:1.13.15

问题是Ember执行AJAX调用时,就好像它指向localhost:4200(Ember),而它应该发送到localhost:9029(Express)。当然,这会抛出404。

我如何使它将请求发送到API而不是它自己?我试过在余烬s之后用pxy,但没有用。它似乎忽略了我创建的文件。我对Ember很陌生。

app/services/ajax.js

import Ember from 'ember';
import AjaxService from 'ember-ajax/services/ajax';
export default AjaxService.extend({
  namespace: '/api',
  host: 'http://localhost:9029',
  trustedHosts: [
    'http://localhost:9029',
  ]
});

app/routes/test.js

import Ember from 'ember';
import AjaxService from 'ember-ajax/services/ajax';
export default Ember.Route.extend({
    ajax: Ember.inject.service(),
    model() {
        return this.get('ajax').request('/gimmieDatDate', {method: 'POST'});
    }
});

您能写出用于运行服务器的完整命令吗?类似的东西

ember s --proxy http://localhost:9029

应该起作用。

您应该在(应用程序)适配器中指定主机。

// app/adapters/application.js
export default DS.JSONAPIAdapter.extend({
  host: 'https://api.example.com'
});

文档:https://guides.emberjs.com/v2.4.0/models/customizing-adapters/#toc_host-自定义