Phonegap文件传输和Access-Control-Allow-Origin

jhd*_*hdj 5 php cross-domain cordova

只是好奇地尝试过使用带ajax的phonegap从服务器查询,注意到由于不允许访问-控制-允许-起源,一段时间后我的ip被阻塞了。该应用程序仍然可以运行,直到您被阻止为止。

找到解决此问题的方法是jsonp或允许服务器上的访问控制。但是jsonp无法传输文件,因此第二个选项用于文件上传。

允许在服务器上进行访问控制的代码:

<?php header('Access-Control-Allow-Origin: *'); ?>
Run Code Online (Sandbox Code Playgroud)

ft.up的phonegap是否也需要这个?

另一个问题是有办法只允许特定的phonegap应用程序吗?

由于您可以将*更改为特定的URL,但不确定如何对phonegap执行此操作。

谢谢

小智 1

要仅允许特定应用程序与您的服务器一起使用,您可以做的是通过 AJAX 请求的标头发送私钥,例如“X-ACCESS-TOKEN”。

$.ajax({
   type: 'POST',
   url: url,
   headers: {
      "X-ACCESS-TOKEN":"CLIENT_SECRET_KEY",
   }
Run Code Online (Sandbox Code Playgroud)

然后在您的服务器上,您可以检查标头是否已发送以及是否等于预期值。

另外,我建议使用 .htaccess 处理标头,而不是直接在后端代码中进行处理。

Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type, accept, X-ACCESS-TOKEN"
Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"
Run Code Online (Sandbox Code Playgroud)

请注意,如果您遵循我的建议,则必须将 X-ACCESS-TOKEN 添加到允许的标头列表中。