【发布时间】:2014-08-14 23:04:12
【问题描述】:
我有一个 drupal 网站。
有一个页面(第 1 页)包含一个表单,该表单收集用户信息并通过 AJAX 将其提交到 Drupal 模块页面。
AJAX 格式为 jquery
var responseTarget = '/site/module/page_name';
jQuery.post(responseTarget, {
key1: value1, key2: value2,.......
}, function(responseText, statusText, xhr) {
if (xhr.status === 200) {
PROCESS SUCCESS
}
else PROCESS FAILURE
模块页面的 URL 格式为“site/module/page_name”(第 2 页),由模块文件“page_name.tpl.php”构建。
这(第 2 页)处理用户信息并将其发送到外部服务器。
服务器回复我的(第 2 页),它通过将值保存到用户帐户来处理响应。
(第 2 页)然后响应(第 1 页)上的 AJAX 调用。
当我的 AJAX 收到响应时,它是来自 Drupal(第 2 页)的响应,而不是来自外部服务器的响应。
- responseText = 整个 Drupal page2,因为它是模块的一部分,它包含页眉和页脚以及作为 HTML 处理的页面的 php,没有对象或值。
- xhr.status = 200 // Drupal page2 成功
我想做的是在我的页面 2 中读取来自服务器的响应并将此包传递给 AJAX 脚本,或者在页面 2 中处理从服务器返回的值并传递状态/值/...回到基于此的AJAX脚本。
我尝试让 Drupal 页面 2 回显 JSON 对象,但这是在模块内完成的,Drupal 将其作为页面 HTML 的一部分打印出来。
总结
[页面 1 (ajax)] --> [页面 2 (Drupal 模块)] --> [外部服务器]
[外部服务器(修改对象)] --> [page 2(处理对象并将其合并到一个完整的 Drupal 页面中,并删除从外部服务器发送的任何标题、状态)] --> [page 1 ( ajax) 从第 2 页接收状态和数据]
【问题讨论】:
标签: php jquery ajax drupal drupal-7