У меня проблема с отправкой данных на сервер при использовании Firefox.Сервер работает на Google App Engine.
Вот что у меня есть в моем JavaScript.
$.ajax({<br>
url: 'http://someurl/example/myform.json',<br>
type: 'post',<br>
dataType: 'json',<br>
data: {<br>
'value.title': title,<br>
'value.info.first': first,<br>
'value.info.second': value<br>
},
success: function(data) {<br>
alert("success");<br>
},<br>
error: function(object, status, error) {<br>
alert("error");<br>
}<br>
});
И на сервере у меня есть.
@RequestMapping(value = "/myform.json", method = RequestMethod.POST)<br>
public ResponseEntity<String> create(@ModelAttribute("data") @Valid final Data data,<br>
final BindingResult result, final HttpServletResponse resp,) {<br>
//process Data
}
Пока все хорошо, это работало на IE и Chrome без проблем.Но потом я обнаружил, что он не работает в Firefox, и это потому, что браузер сначала отправляет метод OPTIONS, прежде чем что-то публиковать, поэтому я продолжил и сделал следующее на своем сервере.
@RequestMapping(value = "/form.json", method = RequestMethod.OPTIONS)<br>
public ResponseEntity<String> options(
final HttpServletResponse resp) {<br>
final HttpHeaders responseHeaders = new HttpHeaders();<br>
responseHeaders.set("Access-Control-Allow-Origin", "*");<br>
responseHeaders.set("Access-Control-Allow-Methods", "GET, POST, OPTIONS");<br>
responseHeaders.set("Access-Control-Allow-Headers", "Content-Type");<br>
responseHeaders.set("Access-Control-Max-Age", "86400");<br>
return new ResponseEntity<String>("",responseHeaders,HttpStatus.OK);<br>
}
Проблема здесь в том, что это возвращает 500, и в журнале отображается предупреждение с.
`java.security.AccessControlException: доступ запрещен (java.lang.RuntimePermissionaccessDeclaredMembers)
в java.security.AccessControlContext.checkPermission (AccessControlContext.java:355)
в java.security.AccessController.checkPermission (AccessController.java:567)
в java.chemНеизвестный источник)
на com.google.apphosting.runtime.security.CustomSecurityManager.checkPermission (CustomSecurityManager.java:45)
на java.lang.SecurityManager.checkMemberAccess (неизвестный источник)
на java.lang.Class.checkMemberAccess (неизвестный источник)
на java.lang.Class.getDeclaredMethods (неизвестный источник)
`
Есть предложения?