Javascript Ajax:无法成功发送第二个请求,因为它需要sessionid
我的应用程序基于JSAPI,所以它仅限于javascript和Webview(因为我正在为手机编译应用程序)。 所以Index.html文件将始终位于设备的本地,并且它将作为一个应用程序工作。 我想添加一个选项,让用户能够登录到我的应用程序,当他们登录时,他们可以在地图上添加标记和一些额外的数据。 所以我编写了php文件,将登录/注册功能和查询添加到mysql服务器作为后端。 这些文件必须在服务器上,所以要访问它们,我需要发送登录请求或在其中一个文件中运行查询 我创建了Ajax请求,但问题是没有缓存sessionID。 所以我可以创建登录请求,但当我尝试发送另一个查询请求时,我无法这样做,因为用户没有登录(没有sessionID)。 出于安全考虑,如果有更好的方法进行登录/注册和查询,我希望保留这样的设置。欢迎提供建议。 我尝试使用xhr.getResponseHeader('Set-Cookie')获取sessionid。 但我收到了: 当请求的凭据模式为“包含”时,响应中的“访问控制允许来源”标头的值不得为通配符“*”。因此,不允许访问源“null”。XMLHttpRequest启动的请求的凭据模式由withCredentials属性控制。 我无法将通配符“*”更改为任何ip地址,因为移动用户将从不同的ip地址发送请求。 有人能给我建议一些改变,让一切都能正常工作吗?Javascript Ajax:无法成功发送第二个请求,因为它需要sessionid,javascript,php,mysql,ajax,leaflet,Javascript,Php,Mysql,Ajax,Leaflet,我的应用程序基于JSAPI,所以它仅限于javascript和Webview(因为我正在为手机编译应用程序)。 所以Index.html文件将始终位于设备的本地,并且它将作为一个应用程序工作。 我想添加一个选项,让用户能够登录到我的应用程序,当他们登录时,他们可以在地图上添加标记和一些额外的数据。 所以我编写了php文件,将登录/注册功能和查询添加到mysql服务器作为后端。 这些文件必须在服务器上,所以要访问它们,我需要发送登录请求或在其中一个文件中运行查询 我创建了Ajax请求,但问题是没有
谢谢所以,您需要更改服务器代码以发送一个带有接收的
origin
请求标头的access control allow origin标头-我认为您对服务器端代码有一定的控制权。您可以通过读取请求来自的IP地址并每次将allow origin标头动态设置为该IP来伪造它。@ADyson-请求的IP地址不是来源
。。。origin
标题是origin
,它是请求来源的网站(与客户端无关),因为移动用户
-是无关的,来源是请求发起的(跨来源)网站-阅读-它解释much@JaromandaX对不起是的你技术上是正确的,尽管OP确实提到了这将是移动设备本身本地的一个.html文件。