Передача данных JSON из React в Django с помощью POST-запроса
Я пытаюсь передать информацию с помощью POST, но получаю запрос в OPTIONS. запрос - "OPTIONS /store-register HTTP/1.1" 200 13.
когда я меняю в views.py request.method == 'POST' на: request.method == 'OPTIONS', я получаю "Broken pipe from ('127.0.0.1', 61126)"
Я не могу разобраться в проблеме.
view.py:
@csrf_exempt
def store_register(request):
if request.method == 'POST':
form = json.loads(request.body)
vendor = Vendors.objects.create(store_name=form['storeName'],company_name=form['companyName'],img=form['storeImage'],business_email=form['storeEmail'],pay_pal=form['payPalEmail'])
vendor.save()
return JsonResponse({'user': 'testONly'})
Реакция компанента:
class StoreRegister extends React.Component {
constructor(props) {
super (props);
this.state = {
acceps: ''
}
}
getAndSendInput = () => {
const storeName = document.getElementById('storeName').value
const companyName = document.getElementById('companyName').value
const storeImage = document.getElementById('storeImage').value
const storeEmail = document.getElementById('storeEmail').value
const payPalEmail = document.getElementById('payPalEmail').value
this.setState({storeName: storeName,companyName: companyName,storeImage: storeImage, storeEmail: storeEmail,payPalEmail: payPalEmail})
fetch('http://127.0.0.1:8000/store-register', {
method: "POST",
body: JSON.stringify ({
'storeName':storeName,
'companyName':companyName,
'storeImage':storeImage,
'storeEmail':storeEmail,
'payPalEmail':payPalEmail
}),
headers: new Headers ({'Content-type': 'application/json; charset=UTF-8'})
})
console.log(storeName,companyName,storeImage, storeEmail,payPalEmail)
}
render () {
return (
<div>
<label>Store Name</label>
<input type={"text"} name={"storeName"} id={"storeName"} ></input>
<br></br>
<label>Company Name</label>
<input type={"text"} name={"companyName"} id={"companyName"} ></input>
<br></br>
<label>Store Image</label>
<input type={"file"} name={"storeImage"} id={"storeImage"}></input>
<br></br>
<label>Store Email</label>
<input type={"email"} name={"storeEmail"} id={"storeEmail"} ></input>
<br></br>
<label>Pay Pal Email</label>
<input type={"email"} name={"payPalEmail"} id={"payPalEmail"}></input>
<br></br>
<button onClick={() => this.getAndSendInput()}>Register</button>
</div>
)
}
}
export default StoreRegister