2016-04-08 33 views
0

我的應用程序中有PUT請求的問題。我正在使用帶有standart fetch請求的redux-form。當我把我的請求,我得到了錯誤:PUT http://localhost:8080/auth 500(內部服務器錯誤),「語法錯誤:意外的令牌<」 還有就是我的代碼獲取:Reduce-form方法中的500(內部服務器錯誤)「PUT」

export default async function submit(fields, dispatch) { 
    console.trace() 
    const {email, fullName, company, industry, phone} = fields 
    let errors 
    if (!email) 
     errors = { 
      ...errors, 
      email: 'Email cannot be empty' 
     }; else if (!/[a-z0-9._%+-][email protected][a-z0-9.-]+\.[a-z]{2,}/i.test(email)) 
     errors = {...errors, email: 'Email seems invalid'}; 

    if (!fullName) 
     errors = {...errors, fullName: 'Full name cannot be empty'}; 

    if (!company) 
     errors = {...errors, company: 'Company name cannot be empty'}; 

    if (!industry) 
     errors = {...errors, industry: 'Industry should be selected'}; 

    if (errors) { 
     return Promise.reject(errors) 
    } 
    const response = await fetch('/auth', { 
     credentials: 'same-origin', 
     method: 'PUT', 
     body: Object.keys(fields) 
      .filter(prop => fields[prop] !== undefined) 
      .reduce((fd, prop) => { 
       fd.append(prop, fields[prop]) 
       return fd 
      }, new FormData()) 
    }); 
    if (response.ok) { 
     console.log('good'); 
     console.log(response); 
    } else { 
     const data = await response.json(); 
     console.log('bad'); 
     console.log(response); 
    } 
} 

什麼可能是錯的呢?

回答

1

這跟redux-form沒有什麼關係,除非你在fetch()之前加上console.log(fields),你會發現一些奇怪的東西。

這是一個序列化JSON到FormData的問題。這就是說,我不能真正看到你的「減少到FormData」代碼的任何錯誤。也許保存到一個變量並將其輸出到控制檯?

要麼是這樣,要麼在服務器端可能會出現一些問題,它不期望該結構中的數據。我通常用普通的JSON發送東西,但是我有完整的堆棧控制。