我想通過AJAX(AngularJS)發送一個Symfony表單。爲什麼Symfony表單在通過AJAX正確發送數據後「未提交」?
然而,即使數據被清楚地發送,表格由Symfony的說是「未提交」(實際上是沒有錯誤的,但一些調試表明isSubmitted
回報false
)
這裏是FOSUserBundle測試登記表。
編輯:雖然圖片看起來很小,但它們已被充分解析,因此如果在其全尺寸下顯示它們是完全可讀的。
這裏是日誌當我使用標準提交從HTTP形式:
這裏是日誌時我使用AJAX提交:
- 我已禁用CSRF令牌
- 我從AJAX中使用的方法是「post」,因此它應該沒問題,因爲它是Symfony預期的默認值(並且FOSUserBundle不會覆蓋默認的AFAIK)。
- 其他形式(FOSUserBundle範圍之外)被正確使用AJAX
發送你對此事的任何想法?任何指針?或者我可以檢查的其他日誌?
編輯:
我用的是default FOSUserBundle registration controller。
我差不多使用default FOSUserBundle registration form,但我添加了一個(當前)空的子表單,以便在開發中進一步使用它。
namespace NONG\SecurityBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
class UserRegistrationType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options) {}
public function getParent() {
return 'fos_user_registration';
}
public function getName() {
return 'nong_user_registration';
}
}
頁眉和與HTML形式發送數據(注:加了點星之前在接受使着色保持正確的):
POST /server/web/testfosuser/register/ HTTP/1.1
Host: mywebsite.com
Connection: keep-alive
Content-Length: 229
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/.*;q=0.8
Origin: http://mywebsite.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.111 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Referer: http://mywebsite.com/server/web/testfosuser/register/
Accept-Encoding: gzip, deflate
Accept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4
Cookie: PHPSESSID=xxxxxxxxxxxxxxxxxxxxxxxxx
fos_user_registration_form%5Bemail%5D=bidon%40bidon.com&
fos_user_registration_form%5Busername%5D=bidon&
fos_user_registration_form%5BplainPassword%5D%5Bfirst%5D=bidon&
fos_user_registration_form%5BplainPassword%5D%5Bsecond%5D=bidon
頁眉與AJAX請求發送:(NB。加入星前點在接受使着色保持正確的):
POST /server/web/testfosuser/register HTTP/1.1
Host: mywebsite.com
Connection: keep-alive
Content-Length: 229
Accept: application/json, text/plain, */.*
Origin: http://mywebsite.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.111 Safari/537.36
Content-Type: application/json;charset=UTF-8 application/x-www-form-urlencoded; charset=UTF-8
Referer: http://mywebsite.com/client/
Accept-Encoding: gzip, deflate
Accept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4
Cookie: PHPSESSID=xxxxxxxxxxxxxxxxxxxxxxxxx
fos_user_registration_form%5Bemail%5D=bidonqdsfqsdf%40qsdf&
fos_user_registration_form%5Busername%5D=charles222&
fos_user_registration_form%5BplainPassword%5D%5Bfirst%5D=bidon&
fos_user_registration_form%5BplainPassword%5D%5Bsecond%5D=bidon
您是否可以顯示您的表單代碼,控制器代碼以及由chrome網絡標籤捕獲的兩種情況下的請求標題和正文? – Flip 2015-02-23 22:33:59
我編輯了這個問題。 – Silverspur 2015-02-24 13:36:10