jquery - Ajax 有时有效,有时无效。为什么会这样?
问题描述
我已经看到了很多类似的问题,但我还没有找到任何明确的解决方案来克服这个问题。
我在 pythonanywhere 上托管了 django rest api,并将该 api 调用到具有以下 Ajax 代码的 HTML 模板。
<script type="text/javascript">
$('.sodmzs').click(function(){
var directory = $("#directory").val();
var name = $("#name").val();
var mailing_name = $("#mailing_name").val();
var address = $("#address").val();
$.ajax({
url : "https://nexerp.pythonanywhere.com/api/create_student",
type : "POST",
dataType : "json",
data : {directory: directory, name : name, mailing_name: mailing_name, address: address}
})
.done(function(response){
console.log("success");
})
.fail(function(){
console.log("fail");
})
.always(function(){
console.log("always");
})
});
</script>
我认为这将是 CORS 问题,所以我在 settings.py 中进行了以下更改,
CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_CREDENTIALS = True
INSTALLED_APPS = [
....
'corsheaders',
]
MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
''... ]
以及在views.py中创建函数的样子,
@api_view(['POST',])
def student_create(request):
account = User.objects.get(pk=1)
print(account)
studentobject = Student(author=account)
if request.method == "POST":
serializer = StudentSerializer(studentobject, data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status = status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
我在models.py中的代码,
class Student(models.Model):
student_id = models.AutoField(primary_key=True)
directory = models.CharField(max_length=200)
name = models.CharField(max_length=200)
mailing_name = models.CharField(max_length=200)
address = models.CharField(max_length=200)
和我在 serializer.py 中的代码,
class StudentSerializer(serializers.ModelSerializer):
class Meta:
model = Student
fields = ('student_id','directory','name','mailing_name','address')
我真的不知道为什么它不起作用!在 10 次中,它只工作 1 或 2 次。请让我知道我在哪里错了。谢谢。
解决方案
推荐阅读
- php - 查询未获取相关表中的所有结果
- objective-c - self->_xxx 和 _xxx 有什么区别?
- oracle - Oracle 11.2 上的 Soap Webservice:“输入文档/URL 不正确”
- python - 如何使用带有特定过滤器的 Python API 获取对讲用户?
- streaming - grpc : CANCELLED: 在收到半关闭之前取消
- validation - 用于列表验证的自定义 ConstraintValidator
- javascript - JS 正则表达式模式不起作用
- amazon-web-services - 无法使用我的家庭网络连接 RDS 堡垒主机的 ec2 实例
- vim - Vim:文本用逗号缩进长行,而不是打破引用的值?
- php - 删除部分电子邮件并删除重复项